ULIMIT(2) System Calls ULIMIT(2)

NAME


ulimit - get and set process limits

SYNOPSIS


#include <ulimit.h>

long ulimit(int cmd, /* newlimit */...);


DESCRIPTION


The ulimit() function provides for control over process limits. It is
effective in limiting the growth of regular files. Pipes are limited
to PIPE_MAX bytes.


The cmd values, defined in <ulimit.h>, include:

UL_GETFSIZE
Return the soft file size limit of the process. The
limit is in units of 512-byte blocks and is inherited
by child processes. Files of any size can be read. The
return value is the integer part of the soft file size
limit divided by 512. If the result cannot be
represented as a long int, the result is unspecified.


UL_SETFSIZE
Set the hard and soft file size limits for output
operations of the process to the value of the second
argument, taken as a long int. Any process may
decrease its own hard limit, but only a process with
appropriate privileges may increase the limit. The new
file size limit is returned. The hard and soft file
size limits are set to the specified value multiplied
by 512. If the result would overflow an rlimit_t, the
actual value set is unspecified.


UL_GMEMLIM
Get the maximum possible break value (see brk(2)).


UL_GDESLIM
Get the current value of the maximum number of open
files per process configured in the system.


RETURN VALUES


Upon successful completion, ulimit() returns the value of the
requested limit. Otherwise, -1 is returned, the limit is not
changed, and errno is set to indicate the error.

ERRORS


The ulimit() function will fail if:

EINVAL
The cmd argument is not valid.


EPERM
A process that has not asserted {PRIV_SYS_RESOURCE} in its
effective set is trying to increase its file size limit.


USAGE


Since all return values are permissible in a successful situation, an
application wishing to check for error situations should set errno to
0, then call ulimit(), and if it returns -1, check if errno is non-
zero.


The getrlimit() and setrlimit() functions provide a more general
interface for controlling process limits, and are preferred over
ulimit(). See getrlimit(2).

ATTRIBUTES


See attributes(7) for descriptions of the following attributes:


+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Standard |
+--------------------+-----------------+

SEE ALSO


brk(2), getrlimit(2), write(2), attributes(7), privileges(7),
standards(7)

February 1, 2003 ULIMIT(2)

tribblix@gmail.com :: GitHub :: Privacy