getrlimit.2 (2010 09)
g
getrlimit(2) getrlimit(2)
RLIMIT_AS This is the maximum size of a process’s total available memory, in bytes. If this
limit is exceeded, the brk(), malloc()
, mmap(), and sbrk() functions will
fail with
errno set to [ENOMEM]. In addition, the automatic stack growth will
fail with the effects outlined above.
RLIMIT_AIO_OPS
This is the maximum number of POSIX Asynchronous I/O operations that a pro-
cess can have enqueued simultaneously. If this limit is exceeded, the
aio_read(), aio_write(), and lio_listio() functions will fail with
errno set to [EAGAIN].
RLIMIT_AIO_MEM
This is the maximum number of bytes of memory that can be locked simultane-
ously by POSIX Asynchronous I/O requests from a single process.
Security Restrictions
Raising hard limits with the
setrlimit call requires the
LIMIT privilege (PRIV_LIMIT). Processes
owned by the superuser have this privilege. Processes owned by other users may have this privilege,
depending on system configuration.
See privileges (5) for more information about privileged access on systems that support fine-grained
privileges.
RETURN VALUE
Upon successful completion,
getrlimit() and setrlimit() return 0. Otherwise, these functions
return −1 and set errno to indicate the error.
ERRORS
The
getrlimit() and setrlimit() functions will fail if:
[EFAULT] The address specified for rlp is invalid. Reliable detection of this error is implemen-
tation dependent.
[EINVAL] An invalid resource was specified; or in a
setrlimit() call, the new rlim_cur
exceeds the new rlim_max .
[EPERM] The limit specified to
setrlimit() would have raised the maximum limit value,
and the calling process does not have appropriate privileges.
The
setrlimit() function may fail if:
[EINVAL] The limit specified cannot be lowered because current usage is already higher than
the limit.
[EINVAL] A user with appropriate privileges has attempted to raise rlp−>rlim_cur or
rlp−>rlim_max to a value greater than the system is capable of supporting.
[EINVAL] The value of rlp−>rlim_cur is less than the number of file descriptors the process
already has allocated.
[EINVAL] The value of rlp−>rlim_max is less than the current soft limit.
[EPERM] The rlp argument specified a hard or soft limit higher than the current hard limit
value, and the caller does not have the appropriate privileges.
WARNINGS
The maximum size of a file returned by
getrlimit() is in terms of bytes. The maximum size of a file
returned by ulimit (see ulimit (2)) with UL_GETFSIZE is in terms of blocks of size 512 bytes. The
value returned by ulimit with UL_GETFSIZE may thus have to be rounded down to a multiple of 512.
The total address space used by a process depends on the platform it is run on. When porting applica-
tions, limits set by
setrlimit() with RLIMIT_AS may need to be adjusted. For example, programs
tend to use more memory on Itanium-based systems than on PA-RISC systems.
AUTHOR
getrlimit() and setrlimit() were developed by HP, AT&T, and the University of California,
Berkeley.
SEE ALSO
brk(2), creat64(2), exec(2), fork(2), open(2), sigaltstack(2), sysconf(2), ulimit(2), malloc(3C), maxdsiz(5),
maxssiz(5).
2 Hewlett-Packard Company − 2 − HP-UX 11i Version 3: September 2010