Annotation of 43BSDReno/lib/libc/sys/getrusage.2, revision 1.1.1.1

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