GETRUSAGE(2)                                                      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 utilized by the
       current process, or all its terminated child processes.  The who param‐
       eter  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 */
                      int     ru_maxrss;
                      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 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).

       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 kilo‐
                      bytes * seconds-of-execution and is calculated  by  sum‐
                      ming  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 process (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.

       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 out‐
                      put.

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


4th Berkeley Distribution        May 13, 1986                     GETRUSAGE(2)
 
Generated: 2016-12-26
Generated by man2html V0.25
page hit count: 791
Valid CSS Valid XHTML 1.0 Strict