Skip to content

Instantly share code, notes, and snippets.

@dougm
Created December 21, 2010 00:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dougm/749262 to your computer and use it in GitHub Desktop.
Save dougm/749262 to your computer and use it in GitHub Desktop.
/* print env from all processes */
#include <stdio.h>
#include <sigar.h>
static int env_getall(void *data,
const char *key, int klen,
char *val, int vlen)
{
printf("%s=%s\n", key, val);
return SIGAR_OK;
}
int main(int argc, char **argv)
{
sigar_t *sigar;
sigar_proc_env_t procenv;
sigar_proc_list_t procs;
int i;
int status;
procenv.type = SIGAR_PROC_ENV_ALL;
procenv.env_getter = env_getall;
procenv.data = NULL;
sigar_open(&sigar);
sigar_proc_list_get(sigar, &procs);
for (i=0; i<procs.number; i++) {
pid_t pid = procs.data[i];
int status =
sigar_proc_args_get(sigar, pid, &args);
printf("-------------------------------\n");
printf("pid=%d...\n", pid);
status = sigar_proc_env_get(sigar, pid, &procenv);
if (status != SIGAR_OK) {
printf("error=%s\n", sigar_strerror(sigar, status);
}
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment