#include <sigar.h> #include <stdio.h> /* gcc -g -o sigar_proc_args -lsocket \ -L ../bindings/java/sigar-bin/lib -lsigar-sparc-sun-solaris-2.x \ -I ../include sigar_proc_args.c */ int main(int argc, char **argv) { sigar_t *sigar; sigar_proc_list_t procs; sigar_proc_args_t args; int n; if (sigar_open(&sigar) != SIGAR_OK) { fprintf(stderr, "Error opening sigar!\n"); return -1; } sigar_proc_list_get(sigar, &procs); for (n=0; n<procs.number; n++) { pid_t pid = procs.data[n]; int status = sigar_proc_args_get(sigar, pid, &args); printf("-------------------------------\n"); if (status == SIGAR_OK) { int i; printf("pid=%d\n", pid); for (i=0; i<args.number; i++) { printf("%d='%s'\n", i, args.data[i]); } sigar_proc_args_destroy(sigar, &args); } else { printf("pid=%d error=%d...%s\n", pid, status, sigar_strerror(sigar, status)); } } sigar_proc_list_destroy(sigar, &procs); sigar_close(sigar); return 0; }