ulimit — get and set user limits


#include <ulimit.h>

long ulimit(int cmd, long newlimit);


Warning: this routine is obsolete. Use getrlimit(2), setrlimit(2), and sysconf(3) instead. For the shell command ulimit(), see bash(1).

The ulimit() call will get or set some limit for the calling process. The cmd argument can have one of the following values.


Return the limit on the size of a file, in units of 512 bytes.


Set the limit on the size of a file.


(Not implemented for Linux.) Return the maximum possible address of the data segment.


(Implemented but no symbolic constant provided.) Return the maximum number of files that the calling process can open.

Return Value

On success, ulimit() returns a nonnegative value. On error, -1 is returned, and errno is set appropriately.



An unprivileged process tried to increase a limit.


For an explanation of the terms used in this section, see attributes(7).

Interface Attribute Value
ulimit() Thread safety MT-Safe

Conforming to

SVr4, POSIX.1-2001. POSIX.1-2008 marks ulimit() as obsolete.

See Also

bash(1), getrlimit(2), setrlimit(2), sysconf(3)


This page is part of release 5.04 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.

Referenced By

byobu(1), getrlimit(2), lttng-relayd(8), syscalls(2), unimplemented(2).

2017-09-15 Linux Programmer's Manual