Annotation of 43BSDTahoe/man/man2/getrlimit.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: .\"    @(#)getrlimit.2 6.4 (Berkeley) 4/3/87
                      6: .\"
                      7: .TH GETRLIMIT 2 "April 3, 1987"
                      8: .UC 4
                      9: .SH NAME
                     10: getrlimit, setrlimit \- control maximum system resource consumption
                     11: .SH SYNOPSIS
                     12: .ft B
                     13: .nf
                     14: #include <sys/time.h>
                     15: #include <sys/resource.h>
                     16: .PP
                     17: .ft B
                     18: getrlimit(resource, rlp)
                     19: int resource;
                     20: struct rlimit *rlp;
                     21: .PP
                     22: .ft B
                     23: setrlimit(resource, rlp)
                     24: int resource;
                     25: struct rlimit *rlp;
                     26: .fi
                     27: .ft R
                     28: .SH DESCRIPTION
                     29: Limits on the consumption of system resources by the current process
                     30: and each process it creates may be obtained with the
                     31: .I getrlimit
                     32: call, and set with the
                     33: .I setrlimit
                     34: call.  
                     35: .PP
                     36: The
                     37: .I resource
                     38: parameter is one of the following:
                     39: .TP 17
                     40: RLIMIT_CPU
                     41: the maximum amount of cpu time (in seconds) to be used by
                     42: each process.
                     43: .TP 17
                     44: RLIMIT_FSIZE
                     45: the largest size, in bytes, of any single file that may be created.
                     46: .TP 17
                     47: RLIMIT_DATA
                     48: the maximum size, in bytes, of the data segment for a process;
                     49: this defines how far a program may extend its break with the
                     50: .IR sbrk (2)
                     51: system call.
                     52: .TP 17
                     53: RLIMIT_STACK
                     54: the maximum size, in bytes, of the stack segment for a process;
                     55: this defines how far a program's stack segment may be extended.
                     56: Stack extension is performed automatically by the system.
                     57: .TP 17
                     58: RLIMIT_CORE
                     59: the largest size, in bytes, of a 
                     60: .I core
                     61: file that may be created.
                     62: .TP 17
                     63: RLIMIT_RSS
                     64: the maximum size, in bytes, to which a process's resident set size may
                     65: grow.  This imposes a limit on the amount of physical memory
                     66: to be given to a process; if memory is tight, the system will
                     67: prefer to take memory from processes that are exceeding their
                     68: declared resident set size.
                     69: .PP
                     70: A resource limit is specified as a soft limit and a hard limit.  When a
                     71: soft limit is exceeded a process may receive a signal (for example, if
                     72: the cpu time or file size is exceeded), but it will be allowed to
                     73: continue execution until it reaches the hard limit (or modifies
                     74: its resource limit).  The 
                     75: .I rlimit
                     76: structure is used to specify the hard and soft limits on a resource,
                     77: .PP
                     78: .nf
                     79: .RS
                     80: .DT
                     81: struct rlimit {
                     82:        int     rlim_cur;       /* current (soft) limit */
                     83:        int     rlim_max;       /* hard limit */
                     84: };
                     85: .RE
                     86: .fi
                     87: .PP
                     88: Only the super-user may raise the maximum limits.  Other users
                     89: may only alter 
                     90: .I rlim_cur
                     91: within the range from 0 to 
                     92: .I rlim_max
                     93: or (irreversibly) lower
                     94: .IR rlim_max .
                     95: .PP
                     96: An \*(lqinfinite\*(rq value for a limit is defined as RLIM_INFINITY
                     97: (0x7\&f\&f\&f\&f\&f\&f\&f).
                     98: .PP
                     99: Because this information is stored in the per-process information,
                    100: this system call must be executed directly by the shell if it
                    101: is to affect all future processes created by the shell;
                    102: .I limit
                    103: is thus a built-in command to
                    104: .IR csh (1).
                    105: .PP
                    106: The system refuses to extend the data or stack space when the limits
                    107: would be exceeded in the normal way: a
                    108: .I break
                    109: call fails if the data space limit is reached.
                    110: When the stack limit is reached, the process receives
                    111: a segmentation fault (SIGSEGV); if this signal is not
                    112: caught by a handler using the signal stack, this signal
                    113: will kill the process.
                    114: .PP
                    115: A file I/O operation that would create a file larger that the process'
                    116: soft limit will cause the write to fail and a signal SIGXFSZ to be
                    117: generated; this normally terminates the process, but may be caught.  When
                    118: the soft cpu time limit is exceeded, a signal SIGXCPU is sent to the
                    119: offending process.
                    120: .SH "RETURN VALUE
                    121: A 0 return value indicates that the call succeeded, changing
                    122: or returning the resource limit.   A return value of \-1 indicates
                    123: that an error occurred, and an error code is stored in the global
                    124: location \fIerrno\fP.
                    125: .SH "ERRORS
                    126: The possible errors are:
                    127: .TP 15
                    128: [EFAULT]
                    129: The address specified for \fIrlp\fP is invalid.
                    130: .TP 15
                    131: [EPERM]        The limit specified to \fIsetrlimit\fP would have
                    132: raised the maximum limit value, and the caller is not the super-user.
                    133: .SH SEE ALSO
                    134: csh(1), quota(2), sigvec(2), sigstack(2)
                    135: .SH BUGS
                    136: There should be 
                    137: .I limit
                    138: and
                    139: .I unlimit
                    140: commands in
                    141: .IR sh (1)
                    142: as well as in
                    143: .IR csh.

unix.superglobalmegacorp.com

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