ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/utils/residentMem.c
Revision: 2027
Committed: Tue Feb 15 06:11:22 2005 UTC (19 years, 4 months ago) by gezelter
Content type: text/plain
File size: 755 byte(s)
Log Message:
bugfixing residentMem

File Contents

# User Rev Content
1 gezelter 2024 #include <config.h>
2     #include <string.h>
3     #include <stdio.h>
4    
5 gezelter 2027 #define to_string( s ) # s
6     #define STR_DEFINE(t, s) t = to_string(s)
7    
8    
9 gezelter 2024 double residentMem () {
10    
11     FILE* procresults;
12     char buf[150];
13     char* foo;
14     long int myRSS, totRSS;
15 gezelter 2026 char pscommand[150];
16 gezelter 2027 char* psPath;
17 gezelter 2024
18 gezelter 2027 STR_DEFINE(psPath, PSCOMMAND );
19 gezelter 2024
20 gezelter 2027 strncpy(pscommand, psPath, strlen(psPath));
21    
22 gezelter 2024 #if PSTYPE == BSD
23     strcat(pscommand, " ax -o rss");
24     #else
25     strcat(pscommand, " -ef -o rss");
26     #endif
27    
28     procresults = popen(pscommand, "r");
29    
30     totRSS = 0;
31     while (!feof(procresults)) {
32     fgets( buf, 150, procresults);
33     if (!strcmp(buf, " RSS")) continue;
34    
35     foo = strtok(buf, " ,;\t");
36     myRSS = atoi(foo);
37     totRSS += myRSS;
38     }
39     pclose(procresults);
40    
41     return(totRSS);
42    
43     }