Updated: 2022/Sep/29
Please read Privacy Policy. It's for your privacy.
LIMITS(3) Library Functions Manual LIMITS(3) NAME limits - standard limits SYNOPSIS #include <limits.h> DESCRIPTION The <limits.h> header defines various compile-time and runtime limits. These can be grouped into three categories: 1. Compile-time limits defined in a header file. 2. Runtime system limits that are not associated with a file or directory; see sysconf(3). 3. Runtime limits that are associated with a file or directory; see pathconf(2). The <limits.h> header has been standardized by at least three entities. ISO Limits The limits defined by the ISO/IEC 9899:1999 ("ISO C99") standard are all compile-time limits. The numerical (integer) limits are: Constant Type Minimum value CHAR_BIT char 8 SCHAR_MAX signed char 127 SCHAR_MIN signed char -127 UCHAR_MAX unsigned char 255 INT_MAX int 32767 INT_MIN int -32767 UINT_MAX unsigned int 65535 SHRT_MIN short -32767 SHRT_MAX short 32767 USHRT_MAX unsigned short 65535 LONG_MAX long int 2147483647 LONG_MIN long int -2147483647 ULONG_MAX unsigned long int 4294967295 LLONG_MAX long long int 9223372036854775807 LLONG_MIN long long int -9223372036854775807 ULLONG_MAX unsigned long long int 18446744073709551615 MB_LEN_MAX - 1 All listed limits may vary across machines and operating systems. The standard guarantees only that the implementation-defined values are equal or greater in absolute value to those shown. The values permit a system with 16-bit integers using one's complement arithmetic. Depending whether the system defines char as signed or unsigned, the maximum and minimum values are: Constant Type Minimum value CHAR_MAX char either SCHAR_MAX or UCHAR_MAX CHAR_MIN char either SCHAR_MIN or 0 The two special cases, CHAR_BIT and MB_LEN_MAX, define the number of bits in char and the maximum number of bytes in a multibyte character constant, respectively. POSIX Limits The POSIX.1 standard specifies numerous limits related to the operating system. For each limit, a separate constant prefixed with "_POSIX_" defines the lowest value that the limit is allowed to have on any POSIX compliant system. For instance, _POSIX_OPEN_MAX defines the minimum upper bound permitted by POSIX for the number of files that a single process may have open at any time. This ensures that a portable program can safely reach these limits without prior knowledge about the actual limits used in a particular system. As the limits are not necessary invariant, pathconf(2) and sysconf(3) should be used to determine the actual value of a limit at runtime. The manual pages of these two functions also contain a more detailed description of the limits available in NetBSD. XSI Limits Also the X/Open System Interface Extension (XSI) specifies few limits. In NetBSD these are limited to LONG_BIT (the number of bits in long), WORD_BIT (the number of bits in a "word"), and few limits related to float and double. SEE ALSO getconf(1), pathconf(2), sysconf(3), types(3), unistd(3) Richard W. Stevens and Stephen A. Rago, Advanced Programming in the UNIX Environment, Addison-Wesley, Second Edition, 2005. NetBSD 10.99 August 9, 2011 NetBSD 10.99