SURFEX v8.1
General documentation of Surfex
getstatm.c
Go to the documentation of this file.
1 #include "getstatm.h"
2 
3 #if defined(LINUX)
4 #include <stdio.h>
5 #include <stdlib.h>
6 
7 int getstatm(struct statm *sm)
8 {
9  static int dont_bother = 0;
10  if (!sm || dont_bother) {
11  return -2;
12  }
13  else {
14  FILE *statfile = fopen ("/proc/self/statm", "r");
15  if (!statfile) {
16  dont_bother = 1;
17  return -1;
18  }
19  fscanf(statfile, "%d %d %d %d %d %d %d",
20  &(sm->size), &(sm->resident),
21  &(sm->shared), &(sm->trs), &(sm->drs),
22  &(sm->lrs), &(sm->dt));
23  fclose(statfile);
24  }
25  return 0;
26 }
27 
28 #else
29 
30 int getstatm(struct statm *sm)
31 {
32  return -1; /* Not implemented */
33 }
34 
35 #endif
int lrs
Definition: getstatm.h:23
int getstatm(struct statm *sm)
Definition: getstatm.c:7
int resident
Definition: getstatm.h:19
Definition: getstatm.h:16
int dt
Definition: getstatm.h:24
int trs
Definition: getstatm.h:21
int drs
Definition: getstatm.h:22
int shared
Definition: getstatm.h:20
int size
Definition: getstatm.h:18