GETRUSAGE(2) UNIX Programmer's Manual GETRUSAGE(2)
getrusage - get information about resource utilization
S
\bSY
\bYN
\bNO
\bOP
\bPS
\bSI
\bIS
\bS
#
\b#i
\bin
\bnc
\bcl
\blu
\bud
\bde
\be <
\b<s
\bsy
\bys
\bs/
\b/t
\bti
\bim
\bme
\be.
\b.h
\bh>
\b>
#
\b#i
\bin
\bnc
\bcl
\blu
\bud
\bde
\be <
\b<s
\bsy
\bys
\bs/
\b/r
\bre
\bes
\bso
\bou
\bur
\brc
\bce
\be.
\b.h
\bh>
\b>
#
\b#d
\bde
\bef
\bfi
\bin
\bne
\be R
\bRU
\bUS
\bSA
\bAG
\bGE
\bE_
\b_S
\bSE
\bEL
\bLF
\bF 0
\b0 /
\b/*
\b* c
\bca
\bal
\bll
\bli
\bin
\bng
\bg p
\bpr
\bro
\boc
\bce
\bes
\bss
\bs *
\b*/
\b/
#
\b#d
\bde
\bef
\bfi
\bin
\bne
\be R
\bRU
\bUS
\bSA
\bAG
\bGE
\bE_
\b_C
\bCH
\bHI
\bIL
\bLD
\bDR
\bRE
\bEN
\bN -
\b-1
\b1 /
\b/*
\b* t
\bte
\ber
\brm
\bmi
\bin
\bna
\bat
\bte
\bed
\bd c
\bch
\bhi
\bil
\bld
\bd p
\bpr
\bro
\boc
\bce
\bes
\bss
\bse
\bes
\bs *
\b*/
\b/
g
\bge
\bet
\btr
\bru
\bus
\bsa
\bag
\bge
\be(
\b(w
\bwh
\bho
\bo,
\b, r
\bru
\bus
\bsa
\bag
\bge
\be)
\b)
i
\bin
\bnt
\bt w
\bwh
\bho
\bo;
\b;
s
\bst
\btr
\bru
\buc
\bct
\bt r
\bru
\bus
\bsa
\bag
\bge
\be *
\b*r
\bru
\bus
\bsa
\bag
\bge
\be;
\b;
D
\bDE
\bES
\bSC
\bCR
\bRI
\bIP
\bPT
\bTI
\bIO
\bON
\bN
_
\bG_
\be_
\bt_
\br_
\bu_
\bs_
\ba_
\bg_
\be returns information describing the resources util-
ized by the current process, or all its terminated child
processes. The _
\bw_
\bh_
\bo parameter is one of RUSAGE_SELF or
RUSAGE_CHILDREN. The buffer to which _
\br_
\bu_
\bs_
\ba_
\bg_
\be points will be
filled in with the following structure:
struct timeval ru_utime; /* user time used */
struct timeval ru_stime; /* system time used */
int ru_ixrss; /* integral shared text memory size */
int ru_idrss; /* integral unshared data size */
int ru_isrss; /* integral unshared stack size */
int ru_minflt; /* page reclaims */
int ru_majflt; /* page faults */
int ru_nswap; /* swaps */
int ru_inblock; /* block input operations */
int ru_oublock; /* block output operations */
int ru_msgsnd; /* messages sent */
int ru_msgrcv; /* messages received */
int ru_nsignals; /* signals received */
int ru_nvcsw; /* voluntary context switches */
int ru_nivcsw; /* involuntary context switches */
The fields are interpreted as follows:
ru_utime the total amount of time spent executing in
ru_stime the total amount of time spent in the system
executing on behalf of the process(es).
ru_maxrss the maximum resident set size utilized (in
ru_ixrss an "integral" value indicating the amount of
Printed 7/9/88 April 3, 1987 1
GETRUSAGE(2) UNIX Programmer's Manual GETRUSAGE(2)
memory used by the text segment that was also
shared among other processes. This value is
expressed in units of kilobytes * ticks-of-
ru_idrss an integral value of the amount of unshared
memory residing in the data segment of a pro-
cess (expressed in units of kilobytes *
ru_isrss an integral value of the amount of unshared
memory residing in the stack segment of a
process (expressed in units of kilobytes *
ru_minflt the number of page faults serviced without
any I/O activity; here I/O activity is
avoided by "reclaiming" a page frame from the
list of pages awaiting reallocation.
ru_majflt the number of page faults serviced that
ru_nswap the number of times a process was "swapped"
ru_inblock the number of times the file system had to
ru_oublock the number of times the file system had to
ru_msgsnd the number of IPC messages sent.
ru_msgrcv the number of IPC messages received.
ru_nsignals the number of signals delivered.
ru_nvcsw the number of times a context switch resulted
due to a process voluntarily giving up the
processor before its time slice was completed
(usually to await availability of a
ru_nivcsw the number of times a context switch resulted
due to a higher priority process becoming
runnable or because the current process
The numbers _
\br_
\bu__
\bi_
\bn_
\bb_
\bl_
\bo_
\bc_
\bk and _
\br_
\bu__
\bo_
\bu_
\bb_
\bl_
\bo_
\bc_
\bk account only for real
I/O; data supplied by the caching mechanism is charged only
Printed 7/9/88 April 3, 1987 2
GETRUSAGE(2) UNIX Programmer's Manual GETRUSAGE(2)
to the first process to read or write the data.
The possible errors for _
\bg_
\be_
\bt_
\br_
\bu_
\bs_
\ba_
\bg_
\be are:
[EINVAL] The _
\bw_
\bh_
\bo parameter is not a valid value.
[EFAULT] The address specified by the _
\br_
\bu_
\bs_
\ba_
\bg_
\be parameter
is not in a valid part of the process address
S
\bSE
\bEE
\bE A
\bAL
\bLS
\bSO
\bO
There is no way to obtain information about a child process
that has not yet terminated.
Printed 7/9/88 April 3, 1987 3