FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
node/src/platform_linux.cc at master · strager/node · GitHub
strager
/
node
Public
forked from
nodejs/node-v0.x-archive
Notifications
You must be signed in to change notification settings
Fork
1
Star
1
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
node
/
src
/
platform_linux.cc
Copy path
More file actions
More file actions
Latest commit
History
History
History
99 lines (83 loc) · 3.51 KB
Breadcrumbs
node
/
src
/
platform_linux.cc
Copy path
File metadata and controls
99 lines (83 loc) · 3.51 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#
include
"
node.h
"
#
include
"
platform.h
"
#
include
<
sys/param.h
>
//
for MAXPATHLEN
#
include
<
unistd.h
>
//
getpagesize
namespace
node
{
static
char
buf[
MAXPATHLEN
+
1
];
int
OS::GetMemory
(
size_t
*rss,
size_t
*vsize) {
FILE
*f =
fopen
(
"
/proc/self/stat
"
,
"
r
"
);
if
(!f)
return
-
1
;
int
itmp;
char
ctmp;
size_t
page_size =
getpagesize
();
/*
PID
*/
if
(
fscanf
(f,
"
%d
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
Exec file
*/
if
(
fscanf
(f,
"
%s
"
, buf) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
State
*/
if
(
fscanf
(f,
"
%c
"
, &ctmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
Parent process
*/
if
(
fscanf
(f,
"
%d
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
Process group
*/
if
(
fscanf
(f,
"
%d
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
Session id
*/
if
(
fscanf
(f,
"
%d
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
TTY
*/
if
(
fscanf
(f,
"
%d
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
TTY owner process group
*/
if
(
fscanf
(f,
"
%d
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
Flags
*/
if
(
fscanf
(f,
"
%u
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
Minor faults (no memory page)
*/
if
(
fscanf
(f,
"
%u
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
Minor faults, children
*/
if
(
fscanf
(f,
"
%u
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
Major faults (memory page faults)
*/
if
(
fscanf
(f,
"
%u
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
Major faults, children
*/
if
(
fscanf
(f,
"
%u
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
utime
*/
if
(
fscanf
(f,
"
%d
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
stime
*/
if
(
fscanf
(f,
"
%d
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
utime, children
*/
if
(
fscanf
(f,
"
%d
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
stime, children
*/
if
(
fscanf
(f,
"
%d
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
jiffies remaining in current time slice
*/
if
(
fscanf
(f,
"
%d
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
'nice' value
*/
if
(
fscanf
(f,
"
%d
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
jiffies until next timeout
*/
if
(
fscanf
(f,
"
%u
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
jiffies until next SIGALRM
*/
if
(
fscanf
(f,
"
%u
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
start time (jiffies since system boot)
*/
if
(
fscanf
(f,
"
%d
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
Virtual memory size
*/
if
(
fscanf
(f,
"
%u
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
*vsize = (
size_t
) itmp;
/*
Resident set size
*/
if
(
fscanf
(f,
"
%u
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
*rss = (
size_t
) itmp * page_size;
/*
rlim
*/
if
(
fscanf
(f,
"
%u
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
Start of text
*/
if
(
fscanf
(f,
"
%u
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
End of text
*/
if
(
fscanf
(f,
"
%u
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
/*
Start of stack
*/
if
(
fscanf
(f,
"
%u
"
, &itmp) ==
0
)
goto
error;
/*
coverity[secure_coding]
*/
fclose
(f);
return
0
;
error:
fclose
(f);
return
-
1
;
}
int
OS::GetExecutablePath
(
char
* buffer,
size_t
* size) {
*size =
readlink
(
"
/proc/self/exe
"
, buffer, *size -
1
);
if
(*size <=
0
)
return
-
1
;
buffer[*size] =
'
\0
'
;
return
0
;
}
}
//
namespace node
Back
|
FazBrowse Home
|
New Git URL