--- projects/libstatgrab/examples/process_snapshot.c 2004/04/03 21:02:10 1.2 +++ projects/libstatgrab/examples/process_snapshot.c 2004/04/08 13:16:04 1.10 @@ -1,5 +1,5 @@ /* - * i-scream central monitoring system + * i-scream libstatgrab * http://www.i-scream.org * Copyright (C) 2000-2004 i-scream * @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - * $Id: process_snapshot.c,v 1.2 2004/04/03 21:02:10 tdb Exp $ + * $Id: process_snapshot.c,v 1.10 2004/04/08 13:16:04 ats Exp $ */ #include @@ -26,44 +26,50 @@ #include int main(){ - proc_state_t *ps; - int ps_size; - int x; - char *state; + sg_process_stats *ps; + int ps_size; + int x; + char *state = NULL; /* Initialise statgrab */ - statgrab_init(); + sg_init(); /* Drop setuid/setgid privileges. */ - if (statgrab_drop_privileges() != 0) { + if (sg_drop_privileges() != 0) { perror("Error. Failed to drop privileges"); return 1; } - ps_size = get_proc_snapshot(&ps); + ps = sg_get_process_stats(&ps_size); - if(ps_size == NULL){ + if(ps == NULL){ fprintf(stderr, "Failed to get process snapshot\n"); exit(1); } + qsort(ps, ps_size, sizeof *ps, sg_process_compare_pid); + printf("%5s %5s %5s %5s %5s %5s %5s %6s %6s %9s %-10s %-4s %-8s %-20s %s\n", "pid", "ppid", "pgid", "uid", "euid", "gid", "egid", "size", "res", "time", "cpu", "nice", "state", "name", "title"); - for(x=0;xstate) { - case RUNNING: + case SG_PROCESS_STATE_RUNNING: state = "RUNNING"; break; - case SLEEPING: + case SG_PROCESS_STATE_SLEEPING: state = "SLEEPING"; break; - case STOPPED: + case SG_PROCESS_STATE_STOPPED: state = "STOPPED"; break; - case ZOMBIE: + case SG_PROCESS_STATE_ZOMBIE: state = "ZOMBIE"; break; + case SG_PROCESS_STATE_UNKNOWN: + default: + state = "UNKNOWN"; + break; } printf("%5d %5d %5d %5d %5d %5d %5d %5dM %5dM %8ds %10f %4d %-8s %-20s %s\n", (int)ps->pid, (int)ps->parent, (int)ps->pgid, (int)ps->uid, @@ -73,7 +79,7 @@ int main(){ (int)ps->time_spent, (float)ps->cpu_percent, (int)ps->nice, state, ps->process_name, ps->proctitle); - ps++; - } + ps++; + } return 0; }