Annotation of 43BSDTahoe/man/man2/getrusage.2, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1980 Regents of the University of California.
                      2: .\" All rights reserved.  The Berkeley software License Agreement
                      3: .\" specifies the terms and conditions for redistribution.
                      4: .\"
                      5: .\"    @(#)getrusage.2 6.6 (Berkeley) 4/3/87
                      6: .\"
                      7: .TH GETRUSAGE 2 "April 3, 1987"
                      8: .UC 4
                      9: .SH NAME
                     10: getrusage \- get information about resource utilization
                     11: .SH SYNOPSIS
                     12: .nf
                     13: .ft B
                     14: #include <sys/time.h>
                     15: #include <sys/resource.h>
                     16: .PP
                     17: .ft B
                     18: .ta \w'#define 'u +\w'RUSAGE_CHILDREN  'u +\w'-1        'u
                     19: #define        RUSAGE_SELF     0       /* calling process */
                     20: #define        RUSAGE_CHILDREN -1      /* terminated child processes */
                     21: .DT
                     22: .PP
                     23: .ft B
                     24: getrusage(who, rusage)
                     25: int who;
                     26: struct rusage *rusage;
                     27: .fi
                     28: .SH DESCRIPTION
                     29: .I Getrusage
                     30: returns information describing the resources utilized by the current
                     31: process, or all its terminated child processes.
                     32: The
                     33: .I who
                     34: parameter is one of RUSAGE_SELF or RUSAGE_CHILDREN.
                     35: The buffer to which
                     36: .I rusage
                     37: points will be filled in with
                     38: the following structure:
                     39: .PP
                     40: .nf
                     41: .RS
                     42: .ta \w'struct  'u +\w'struct  'u +3u*\w'struct  'u
                     43: struct rusage {
                     44:        struct timeval ru_utime;        /* user time used */
                     45:        struct timeval ru_stime;        /* system time used */
                     46:        int     ru_maxrss;
                     47:        int     ru_ixrss;       /* integral shared text memory size */
                     48:        int     ru_idrss;       /* integral unshared data size */
                     49:        int     ru_isrss;       /* integral unshared stack size */
                     50:        int     ru_minflt;      /* page reclaims */
                     51:        int     ru_majflt;      /* page faults */
                     52:        int     ru_nswap;       /* swaps */
                     53:        int     ru_inblock;     /* block input operations */
                     54:        int     ru_oublock;     /* block output operations */
                     55:        int     ru_msgsnd;      /* messages sent */
                     56:        int     ru_msgrcv;      /* messages received */
                     57:        int     ru_nsignals;    /* signals received */
                     58:        int     ru_nvcsw;       /* voluntary context switches */
                     59:        int     ru_nivcsw;      /* involuntary context switches */
                     60: };
                     61: .RE
                     62: .DT
                     63: .fi
                     64: .PP
                     65: The fields are interpreted as follows:
                     66: .TP 15
                     67: ru_utime
                     68: the total amount of time spent executing in user mode.
                     69: .TP 15
                     70: ru_stime
                     71: the total amount of time spent in the system executing on behalf
                     72: of the process(es).
                     73: .TP 15
                     74: ru_maxrss
                     75: the maximum resident set size utilized (in kilobytes).
                     76: .TP 15
                     77: ru_ixrss
                     78: an \*(lqintegral\*(rq value indicating the amount of memory used
                     79: by the text segment
                     80: that was also shared among other processes.  This value is expressed
                     81: in units of kilobytes * ticks-of-execution.
                     82: .TP 15
                     83: ru_idrss
                     84: an integral value of the amount of unshared memory residing in the
                     85: data segment of a process (expressed in units of
                     86: kilobytes * ticks-of-execution).
                     87: .TP 15
                     88: ru_isrss
                     89: an integral value of the amount of unshared memory residing in the
                     90: stack segment of a process (expressed in units of
                     91: kilobytes * ticks-of-execution).
                     92: .TP 15
                     93: ru_minflt
                     94: the number of page faults serviced without any I/O activity; here
                     95: I/O activity is avoided by \*(lqreclaiming\*(rq a page frame from
                     96: the list of pages awaiting reallocation.
                     97: .TP 15
                     98: ru_majflt
                     99: the number of page faults serviced that required I/O activity.
                    100: .TP 15
                    101: ru_nswap
                    102: the number of times a process was \*(lqswapped\*(rq out of main
                    103: memory.
                    104: .TP 15
                    105: ru_inblock
                    106: the number of times the file system had to perform input.
                    107: .TP 15
                    108: ru_oublock
                    109: the number of times the file system had to perform output.
                    110: .TP 15
                    111: ru_msgsnd
                    112: the number of IPC messages sent.
                    113: .TP 15
                    114: ru_msgrcv
                    115: the number of IPC messages received.
                    116: .TP 15
                    117: ru_nsignals
                    118: the number of signals delivered.
                    119: .TP 15
                    120: ru_nvcsw
                    121: the number of times a context switch resulted due to a process
                    122: voluntarily giving up the processor before its time slice was
                    123: completed (usually to await availability of a resource).
                    124: .TP 15
                    125: ru_nivcsw
                    126: the number of times a context switch resulted due to a higher
                    127: priority process becoming runnable or because the current process
                    128: exceeded its time slice.
                    129: .SH NOTES
                    130: The numbers 
                    131: .I ru_inblock
                    132: and 
                    133: .I ru_oublock
                    134: account only for real
                    135: I/O; data supplied by the caching mechanism is charged only
                    136: to the first process to read or write the data.
                    137: .SH ERRORS
                    138: The possible errors for
                    139: .I getrusage
                    140: are:
                    141: .TP 15
                    142: [EINVAL]
                    143: The
                    144: .I who
                    145: parameter is not a valid value.
                    146: .TP 15
                    147: [EFAULT]
                    148: The address specified by the
                    149: .I rusage
                    150: parameter is not in a valid part of the process address space.
                    151: .SH SEE ALSO
                    152: gettimeofday(2), wait(2)
                    153: .SH BUGS
                    154: There is no way to obtain information about a child process
                    155: that has not yet terminated.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.