home *** CD-ROM | disk | FTP | other *** search
-
- GETRLIMIT(2) UNIX Programmer's Manual GETRLIMIT(2)
-
- NNAAMMEE
- ggeettrrlliimmiitt, sseettrrlliimmiitt - control maximum system resource consumption
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssyyss//ttiimmee..hh>>
- ##iinncclluuddee <<ssyyss//rreessoouurrccee..hh>>
-
- _i_n_t
- ggeettrrlliimmiitt(_i_n_t _r_e_s_o_u_r_c_e, _s_t_r_u_c_t _r_l_i_m_i_t _*_r_l_p)
-
- _i_n_t
- sseettrrlliimmiitt(_i_n_t _r_e_s_o_u_r_c_e, _s_t_r_u_c_t _r_l_i_m_i_t _*_r_l_p)
-
- DDEESSCCRRIIPPTTIIOONN
- Limits on the consumption of system resources by the current process and
- each process it creates may be obtained with the ggeettrrlliimmiitt() call, and
- set with the sseettrrlliimmiitt() call.
-
- The _r_e_s_o_u_r_c_e parameter is one of the following:
-
- RLIMIT_CPU the maximum amount of cpu time (in seconds) to be used by
- each process.
-
- RLIMIT_FSIZE the largest size, in bytes, of any single file that may
- be created.
-
- RLIMIT_DATA the maximum size, in bytes, of the data segment for a
- process; this defines how far a program may extend its
- break with the sbrk(2) system call.
-
- RLIMIT_STACK the maximum size, in bytes, of the stack segment for a
- process; this defines how far a program's stack segment
- may be extended. Stack extension is performed automati
- cally by the system.
-
- RLIMIT_CORE the largest size, in bytes, of a core file that may be
- created.
-
- RLIMIT_RSS the maximum size, in bytes, to which a process's resident
- set size may grow. This imposes a limit on the amount of
- physical memory to be given to a process; if memory is
- tight, the system will prefer to take memory from pro
- cesses that are exceeding their declared resident set
- size.
-
- A resource limit is specified as a soft limit and a hard limit. When a
- soft limit is exceeded a process may receive a signal (for example, if
- the cpu time or file size is exceeded), but it will be allowed to contin
- ue execution until it reaches the hard limit (or modifies its resource
- limit). The _r_l_i_m_i_t structure is used to specify the hard and soft limits
- on a resource,
-
- struct rlimit {
- int rlim_cur; /* current (soft) limit */
- int rlim_max; /* hard limit */
- };
-
- Only the superuser may raise the maximum limits. Other users may only
- alter _r_l_i_m___c_u_r within the range from 0 to _r_l_i_m___m_a_x or (irreversibly) low
- er _r_l_i_m___m_a_x.
-
-
- An ``infinite'' value for a limit is defined as RLIM_INFINITY
- (0x7fffffff).
-
- Because this information is stored in the perprocess information, this
- system call must be executed directly by the shell if it is to affect all
- future processes created by the shell; lliimmiitt is thus a builtin command
- to csh(1).
-
- The system refuses to extend the data or stack space when the limits
- would be exceeded in the normal way: a break call fails if the data space
- limit is reached. When the stack limit is reached, the process receives
- a segmentation fault (SIGSEGV); if this signal is not caught by a handler
- using the signal stack, this signal will kill the process.
-
- A file I/O operation that would create a file larger that the process'
- soft limit will cause the write to fail and a signal SIGXFSZ to be gener
- ated; this normally terminates the process, but may be caught. When the
- soft cpu time limit is exceeded, a signal SIGXCPU is sent to the offend
- ing process.
-
- RREETTUURRNN VVAALLUUEESS
- A 0 return value indicates that the call succeeded, changing or returning
- the resource limit. A return value of 1 indicates that an error oc
- curred, and an error code is stored in the global location _e_r_r_n_o.
-
- EERRRROORRSS
- GGeettrrlliimmiitt() and sseettrrlliimmiitt() will fail if:
-
- [EFAULT] The address specified for _r_l_p is invalid.
-
- [EPERM] The limit specified to sseettrrlliimmiitt() would have raised the
- maximum limit value, and the caller is not the superuser.
-
- SSEEEE AALLSSOO
- csh(1), quota(2), sigvec(2), sigstack(2)
-
- BBUUGGSS
- There should be lliimmiitt and uunnlliimmiitt commands in sh(1) as well as in csh.
-
- HHIISSTTOORRYY
- The ggeettrrlliimmiitt function call appeared in 4.2BSD.
-
- 4th Berkeley Distribution March 10, 1991 2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-