4.3BSD-UWisc/man/cat2/getrusage.2

Compare this file to the similar file:
Show the results in this format:




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
     _G_e_t_r_u_s_a_g_e returns information describing the resources util-
     ized by the current process, or all its terminated child
     processes.  The _w_h_o parameter is one of RUSAGE_SELF or
     RUSAGE_CHILDREN.  The buffer to which _r_u_s_a_g_e 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



Printed 12/27/86          May 13, 1986                          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 * 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.

     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
                    due to a higher priority process becoming
                    runnable or because the current process
                    exceeded its time slice.




Printed 12/27/86          May 13, 1986                          2






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



NOTES
     The numbers _r_u__i_n_b_l_o_c_k and _r_u__o_u_t_b_l_o_c_k 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 _g_e_t_r_u_s_a_g_e are:

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

     [EFAULT]       The address specified by the _r_u_s_a_g_e 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 12/27/86          May 13, 1986                          3