Proc-ProcessTable
view release on metacpan or search on metacpan
{
/* user/group id of the user running it */
int uid;
int gid;
/* values scraped from /proc/{$pid}/stat */
pid_t pid;
char comm[16]; /* limit in kernel, likewise in procps */
char state_c;
int ppid;
int pgrp;
int sid;
int tracer;
int tty;
unsigned flags;
unsigned long minflt, cminflt, majflt, cmajflt;
unsigned long long utime, stime;
long long cutime, cstime;
long priority;
unsigned long long start_time;
unsigned long vsize;
long rss;
unsigned long wchan;
/* these are derived from above time values */
unsigned long long time, ctime;
/* from above state_c but fixed up elsewhere */
const char *state;
/* values scraped from /proc/{$pid}/status */
int euid, suid, fuid;
int egid, sgid, fgid;
/* cwd, cmdline & exec files; values allocated at the end of obstacks */
char *cwd;
char *cmndline;
char *cmdline;
int cmdline_len;
char *environ;
int environ_len;
char *exec;
/* other values */
char pctcpu[LENGTH_PCTCPU]; /* precent cpu, without '%' char */
char pctmem[sizeof("100.00")]; /* precent memory, without '%' char */
};
enum state
{
SLEEP,
WAIT,
RUN,
IDLE,
DEFUNCT,
STOP,
UWAIT,
DEAD,
WAKEKILL,
TRACINGSTOP,
PARKED
};
/* strings, to make sure they get placed in read only memory,
* ditto for pointers to them and so we avoid relocations */
static const char strings[] =
{
/* process state */
"sleep\0"
"wait\0"
"run\0"
"idle\0"
"defunct\0"
"stop\0"
"uwait\0"
"dead\0"
"wakekill\0"
"tracingstop\0"
/* error messages */
"/proc unavailable\0"
"intilization failed\0"
/* fields */
"uid\0"
"gid\0"
"pid\0"
"fname\0"
"ppid\0"
"pgrp\0"
"sess\0"
"ttynum\0"
"flags\0"
"minflt\0"
"cminflt\0"
"majflt\0"
"cmajflt\0"
"utime\0"
"stime\0"
"cutime\0"
"cstime\0"
"priority\0"
"start\0"
"size\0"
"rss\0"
"wchan\0"
"time\0"
"ctime\0"
"state\0"
"euid\0"
"suid\0"
"fuid\0"
"egid\0"
"sgid\0"
"fgid\0"
"pctcpu\0"
"pctmem\0"
"cmndline\0"
"exec\0"
"cwd\0"
"cmdline\0"
"environ\0"
"tracer\0"
/* format string */
"IIISIIIILLLLLJJJJIJPLLJJSIIIIIISSSSSAAI\0"
};
( run in 0.415 second using v1.01-cache-2.11-cpan-5511b514fd6 )