VLIMIT(3) BSD Programmer's Manual VLIMIT(3) NNAAMMEE vvlliimmiitt - control maximum system resource consumption SSYYNNOOPPSSIISS ##iinncclluuddee <<ssyyss//vvlliimmiitt..hh>> vvlliimmiitt(_r_e_s_o_u_r_c_e, _v_a_l_u_e); DDEESSCCRRIIPPTTIIOONN TThhiiss iinntteerrffaaccee iiss oobbssoolleetteedd bbyy ggeettrrlliimmiitt((22)).. IItt iiss aavvaaiillaabbllee ffrroomm tthhee ccoommppaattiibbiilliittyy lliibbrraarryy,, lliibbccoommppaatt.. Limits the consumption by the current process and each process it creates to not individually exceed _v_a_l_u_e on the specified _r_e_s_o_u_r_c_e. If _v_a_l_u_e is specified as -1, then the current limit is returned and the limit is un- changed. The resources which are currently controllable are: LIM_NORAISE A pseudo-limit; if set non-zero then the limits may not be raised. Only the super-user may remove the _n_o_r_a_i_s_e restric- tion. LIM_CPU the maximum number of cpu-seconds to be used by each process LIM_FSIZE the largest single file which can be created LIM_DATA the maximum growth of the data+stack region via sbrk(2) be- yond the end of the program text LIM_STACK the maximum size of the automatically-extended stack region LIM_CORE the size of the largest core dump that will be created. LIM_MAXRSS a soft limit for the amount of physical memory (in bytes) to be given to the program. If memory is tight, the system will prefer to take memory from processes which are exceed- ing their declared LIM_MAXRSS. Because this information is stored in the per-process information this system call must be executed directly by the shell if it is to affect all future processes created by the shell; limit is thus a built-in 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(2) call fails if the data space limit is reached, or the process is killed when the stack limit is reached (since the stack cannot be extended, there is no way to send a signal!). A file I/O operation which would create a file which is too large will cause a signal SIGXFSZ to be generated, this normally terminates the pro- cess, but may be caught. When the cpu time limit is exceeded, a signal SIGXCPU is sent to the offending process; to allow it time to process the signal it is given 5 seconds grace by raising the CPU time limit. SSEEEE AALLSSOO csh(1) HHIISSTTOORRYY The vvlliimmiitt() function appeared in 4.2BSD. BBUUGGSS LIM_NORAISE no longer exists. 4th Berkeley Distribution June 4, 1993 1