GETRUSAGE(2)	    UNIX Programmer's Manual	     GETRUSAGE(2)


NAME
     getrusage - get information about resource utilization

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

     #define RUSAGE_SELF      0         /* calling process */
     #define RUSAGE_CHILDREN  -1	/* terminated child processes */

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

DESCRIPTION
     Getrusage returns information describing the resources util-
     ized by the current process, or all its terminated child
     processes.  The who parameter is one of RUSAGE_SELF or
     RUSAGE_CHILDREN.  The buffer to which rusage points will be
     filled in with the following structure:

	  struct  rusage {
		  struct timeval ru_utime;	  /* user time used */
		  struct timeval ru_stime;	  /* system time used */
		  long	  ru_maxrss;
		  long	  ru_ixrss;		  /* integral shared text 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_ovly;		  /* overlay changes */
		  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 */
	  };

     The fields are interpreted as follows:

     ru_utime	    the total amount of time spent executing in
		    user mode.

     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
		    kilobytes).


Printed 11/26/99	  May 13, 1986				1


GETRUSAGE(2)	    UNIX Programmer's Manual	     GETRUSAGE(2)


     ru_ixrss	    an "integral" value indicating the amount of
		    memory used by the text segment that was also
		    shared among other processes.  This value is
		    expressed in units of kilobytes * seconds-
		    of-execution and is calculated by summing the
		    number of shared memory pages in use each
		    time the internal system clock ticks and then
		    averaging over 1 second intervals.

     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 *
		    seconds-of-execution).

     ru_isrss	    an integral value of the amount of unshared
		    memory residing in the stack segment of a
		    process (expressed in units of kilobytes *
		    seconds-of-execution).

     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
		    required I/O activity.

     the number of times a process requested a text overlay switch -
		    only available under 2_10BSD.

     ru_nswap	    the number of times a process was "swapped"
		    out of main memory.

     ru_inblock     the number of times the file system had to
		    perform input.

     ru_outblock    the number of times the file system had to
		    perform output.

     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
		    resource).

     ru_nivcsw	    the number of times a context switch resulted


Printed 11/26/99	  May 13, 1986				2


GETRUSAGE(2)	    UNIX Programmer's Manual	     GETRUSAGE(2)


		    due to a higher priority process becoming
		    runnable or because the current process
		    exceeded its time slice.

NOTES
     The numbers ru_inblock and ru_outblock account only for real
     I/O; data supplied by the caching mechanism is charged only
     to the first process to read or write the data.

ERRORS
     The possible errors for getrusage are:

     [EINVAL]	    The who parameter is not a valid value.

     [EFAULT]	    The address specified by the rusage parameter
		    is not in a valid part of the process address
		    space.

SEE ALSO
     gettimeofday(2), wait(2)

BUGS
     There is no way to obtain information about a child process
     that has not yet terminated.


Printed 11/26/99	  May 13, 1986				3


 
Generated: 2016-12-26
Generated by man2html V0.25
page hit count: 1414
Valid CSS Valid XHTML 1.0 Strict