--- projects/libstatgrab/docs/sg_get_process_stats.xml 2004/05/02 17:21:35 1.5 +++ projects/libstatgrab/docs/sg_get_process_stats.xml 2004/05/18 14:33:11 1.9 @@ -6,8 +6,8 @@ - $Date: 2004/05/02 17:21:35 $ - $Id: sg_get_process_stats.xml,v 1.5 2004/05/02 17:21:35 tdb Exp $ + $Date: 2004/05/18 14:33:11 $ + $Id: sg_get_process_stats.xml,v 1.9 2004/05/18 14:33:11 pajs Exp $ @@ -17,7 +17,16 @@ + sg_get_process_stats sg_get_process_count + sg_process_compare_name + sg_process_compare_pid + sg_process_compare_uid + sg_process_compare_gid + sg_process_compare_size + sg_process_compare_res + sg_process_compare_cpu + sg_process_compare_time get process statistics @@ -25,29 +34,273 @@ #include <statgrab.h> + sg_process_stats *sg_get_process_stats + int *entries + + sg_process_count *sg_get_process_count + + + int sg_process_compare_name + const void *va + const void *vb + + + int sg_process_compare_pid + const void *va + const void *vb + + + int sg_process_compare_uid + const void *va + const void *vb + + + int sg_process_compare_gid + const void *va + const void *vb + + + int sg_process_compare_size + const void *va + const void *vb + + + int sg_process_compare_res + const void *va + const void *vb + + + int sg_process_compare_cpu + const void *va + const void *vb + + + int sg_process_compare_time + const void *va + const void *vb + + Description + The sg_get_process_stats takes a pointer to + an int, entries, which is filled with the + number of processes the snapshot contains. The return value is a + pointer to the first member of an array of + sg_process_stats structures; the number + of entries in the array is returned in + entries. + + sg_get_process_count returns a pointer to a static buffer of type sg_process_count. - It provides information on the number of processes and the - system and the different states they're in. + These two functions provide information on the process running + on the system. In the first case lots of detail is provided, and + in the second case a summary of the states of the current processes. + + + sg_process_compare_name + sg_process_compare_pid + sg_process_compare_uid + sg_process_compare_gid + sg_process_compare_size + sg_process_compare_res + sg_process_compare_cpu + sg_process_compare_time + + + + These functions compare two sg_process_stats entries, and return an + int to represent which one is greater. The main use of these functions + is to be passed to qsort to sort the sg_process_stats by the given type. + + + For example: + + + qsort(sg_process_stats ps, int ps_size, sizeof *ps, sg_process_compare_pid); + + Return Values - The structure returned is of type + The structure returned by sg_get_process_stats is of type + sg_process_stats. + + + +typedef struct { + char *process_name; + char *proctitle; + + pid_t pid; + pid_t parent; /* Parent pid */ + pid_t pgid; /* process id of process group leader */ + + uid_t uid; + uid_t euid; + gid_t gid; + gid_t egid; + + unsigned long long proc_size; /* in bytes */ + unsigned long long proc_resident; /* in bytes */ + time_t time_spent; /* time running in seconds */ + double cpu_percent; + int nice; + sg_process_state state; +} sg_process_stats; + + + +typedef enum { + SG_PROCESS_STATE_RUNNING, + SG_PROCESS_STATE_SLEEPING, + SG_PROCESS_STATE_STOPPED, + SG_PROCESS_STATE_ZOMBIE, + SG_PROCESS_STATE_UNKNOWN +} sg_process_state; + + + + + process_name + + + The name of the command that was run. + + + + + proctitle + + + The command line (the "title") of the process. Take + note - this can be modified by the process, so isn't + guaranteed to be the original command line. + + + + + pid + + + The process ID. + + + + + parent + + + The parent process ID. + + + + + pgid + + + The process ID of the process group leader. + + + + + uid + + + The UID the process is running as. + + + + + euid + + + The effective UID the process is running as. + + + + + gid + + + The GID the process is running as. + + + + + egid + + + The effective GID the process is running as. + + + + + proc_size + + + The size of the process in bytes. + + + + + proc_resident + + + The size of the process that's resident in memory. + + + + + time_spent + + + The number of seconds the process has been running. + + + + + cpu_percent + + + The current percentage of CPU the process is using. + + + + + nice + + + The nice value of the process. + + + + + state + + + The current state of the process. See sg_process_state + for permitted values. + + + + + + + The structure returned by sg_get_process_count is of type sg_process_count.