Blame examples/proclist.c

Packit d37888
#include <glibtop.h>
Packit d37888
#include <glibtop/proclist.h>
Packit d37888
#include <glibtop/procstate.h>
Packit d37888
#include <glibtop/proctime.h>
Packit d37888
#include <glibtop/procuid.h>
Packit d37888
Packit d37888
#include <glib.h>
Packit d37888
Packit d37888
#include <stdio.h>
Packit d37888
Packit d37888
#include <unistd.h>
Packit d37888
#include <sys/types.h>
Packit d37888
Packit d37888
Packit d37888
static void print_pids(guint64 which, guint64 arg)
Packit d37888
{
Packit d37888
	pid_t *pids;
Packit d37888
	unsigned i;
Packit d37888
	glibtop_proclist buf;
Packit d37888
Packit d37888
	pids = glibtop_get_proclist(&buf, which, arg);
Packit d37888
Packit d37888
	for (i = 0; i < buf.number; ++i) {
Packit d37888
		glibtop_proc_time ptime;
Packit d37888
		glibtop_proc_uid puid;
Packit d37888
		glibtop_proc_state pstate;
Packit d37888
Packit d37888
		pid_t p = pids[i];
Packit d37888
Packit d37888
		glibtop_get_proc_time(&ptime, p);
Packit d37888
		glibtop_get_proc_uid(&puid, p);
Packit d37888
		glibtop_get_proc_state(&pstate, p);
Packit d37888
Packit d37888
		/* almost equivalent to ps -x -o user,pid,time,usertime,systime,start,command */
Packit d37888
		printf("%u pid=%u real=%.2f user=%.2f sys=%.2f start=%lu %s (%lx)\n",
Packit d37888
		       puid.uid,
Packit d37888
		       p,
Packit d37888
		       (double)ptime.rtime / ptime.frequency,
Packit d37888
		       (double)ptime.utime / ptime.frequency,
Packit d37888
		       (double)ptime.stime / ptime.frequency,
Packit d37888
		       (unsigned long)ptime.start_time,
Packit d37888
		       pstate.cmd,
Packit d37888
		       (long)ptime.flags);
Packit d37888
	}
Packit d37888
Packit d37888
	g_free(pids);
Packit d37888
}
Packit d37888
Packit d37888
Packit d37888
int main()
Packit d37888
{
Packit d37888
	glibtop_init();
Packit d37888
Packit d37888
	print_pids(GLIBTOP_KERN_PROC_UID, getuid());
Packit d37888
Packit d37888
	glibtop_close();
Packit d37888
Packit d37888
	return 0;
Packit d37888
}