Blame examples/proclist.c

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