Penguin

NAME

getrusage - get resource usage

SYNOPSIS

#include <sys/time.h> #include <sys/resource.h> #include <unistd.h>

int getrusage (int who, struct rusage *usage);

DESCRIPTION

getrusage(2) returns the current resource usages, for a who of either RUSAGE_SELF or RUSAGE_CHILDREN.

struct rusage {

struct timeval ru_utime; /* user time used / struct timeval ru_stime; / system time used / long ru_maxrss; / maximum resident set size / long ru_ixrss; / integral shared memory size / long ru_idrss; / integral unshared data size / long ru_isrss; / integral unshared stack size / long ru_minflt; / page reclaims / long ru_majflt; / page faults / long ru_nswap; / swaps / long ru_inblock; / block input operations / long ru_oublock; / block output operations / long ru_msgsnd; / messages sent / long ru_msgrcv; / messages received / long ru_nsignals; / signals received / long ru_nvcsw; / voluntary context switches / long ru_nivcsw; / involuntary context switches */

};

RETURN VALUE

On success, zero is returned. On error, -1 is returned, and errno is set appropriately.

ERRORS

EFAULT
rlim or usage points outside the accessible address space.
EINVAL
getrusage(2) is called with a bad who.

CONFORMING TO

SVr4, BSD 4.3

NOTE

Including <sys/time.h> is not required these days, but increases portability. (Indeed, struct timeval is defined in <sys/time.h>.)

The above struct was taken from BSD 4.3 Reno. Not all fields are meaningful under Linux. Right now (Linux 2.4) only the fields ru_utime, ru_stime, ru_minflt, ru_majflt, and ru_nswap are maintained.

SEE ALSO

quotactl(2), ulimit(3)

This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.