/* gcc -Wall -O2 -lproc -o penum penum.c */ #include #include #include #include void enumerate_procs(void) { PROCTAB *proct; proc_t *proc_info; int numprocs = 0; char *cmd = (char*)malloc(20*sizeof(char)); int pid; proct = openproc(PROC_FILLARG | PROC_FILLSTAT | PROC_FILLSTATUS); while ((proc_info = readproc(proct,NULL))) { strncpy(cmd, proc_info->cmd, 20); pid = proc_info->tid; printf("[%d] %d %s\n", numprocs, pid, cmd); numprocs++; } closeproc(proct); free(cmd); } int main(int argc, char *argv[]) { enumerate_procs(); exit(0); }