ulimit(3)

ulimit3

Get and set process limits

Usage

#include <ulimit.h>

long

ulimit(int cmd, ...);

Library

Standard C Library (libc, -lc)

Overview

The ulimit() function will get and set process limits. Currently, this is limited to the maximum file size. The cmd argument is one of the following:

UL_GETFSIZE

will return the maximum file size of the current process, in units of 512-byte blocks.

UL_SETFSIZE

will attempt to set the maximum file size of the current process and its children, using the second argument (expressed as a long).

Return values

The ulimit() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

Errors

The ulimit() function will fail if:

[EINVAL]

The command specified was invalid.

[EPERM]

The limit specified to ulimit() would have raised the maximum limit value, and the caller is not the super-user.

Releases

56 releases since FreeBSD 5.0-RELEASE; the text changed 34 times.

  1. 5.0
  2. 5.1–6.3
  3. 6.4
  4. 7.0
  5. 7.1
  6. 7.2
  7. 7.3
  8. 7.4
  9. 8.0
  10. 8.1
  11. 8.2
  12. 8.3
  13. 8.4
  14. 9.0
  15. 9.1
  16. 9.2
  17. 9.3
  18. 10.0
  19. 10.1
  20. 10.2
  21. 10.3
  22. 10.4
  23. 11.0
  24. 11.1
  25. 11.2
  26. 11.3
  27. 11.4
  28. 12.0
  29. 12.1
  30. 12.2
  31. 12.3
  32. 12.4
  33. 13.0–13.2
  34. 13.3–15.1
  35. 16.0

Standards

The ulimit() function conforms to IEEE Std 1003.1-2001 (“POSIX.1”).

History

The ulimit() function first appeared in FreeBSD 5.0.

Bugs

The ulimit() function provides limited precision for setting and retrieving process limits. If there is a need for greater precision than the type long provides, the getrlimit(2) and setrlimit(2) functions should be considered.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.