VLIMIT(3) UNIX Programmer’s Manual VLIMIT(3)
NAME
vlimit - control maximum system resource consumption
SYNOPSIS
#include <sys/vlimit.h>
vlimit(resource, value)
DESCRIPTION
This interface is obsoleted by getrlimit(2). It is available
from the
compatibility library, libcompat.
Limits the consumption by the
current process and each process it creates
to not individually exceed value on the specified resource.
If value 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 noraise 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.
SEE ALSO
csh(1)
HISTORY
The vlimit() function appeared in 4.2BSD.
BUGS
LIM_NORAISE no longer exists.