limits(3) [netbsd man page]
LIMITS(3) BSD 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 por- table 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. BSD
August 9, 2011 BSD
Check Out this Related Man Page
limits(5) File Formats Manual limits(5) NAME
limits - implementation-specific constants SYNOPSIS
DESCRIPTION
The following symbols are defined in and are used throughout the descriptive text of this manual. The column headed HP-UX Value lists the values that application writers should assume for portability across all HP-UX systems. Symbols after values are interpreted as follows: Actual limit might be greater than specified value on certain HP-UX systems. Actual limit might be greater than value specified in on certain HP-UX systems. Actual limit might be less than the specified value on certain HP-UX systems. Actual limit is always equal to the specified value and does not vary across HP-UX systems. The name of this limit is defined if the preprocessor macro is defined, either by the compilation flag or by a directive in the source before is included in the source. The value defined for this limit might not be a compile-time constant. The value defined always evaluates to an integer expression at run time. Some of these limits vary with system configuration, and can be determined dynamically by using sysconf(2). Others can vary according to file system or device associated with a specific file, and can be determined with pathconf(2). Others are obsolescent because they are redundant with other limits or not useful in portable applications. They are provided only for importability of applications from other systems, to support applications that comply with the and for backward compatibility with earlier versions of HP-UX. The flag should not be defined in new applications. By including the file in the compilation an application can test the appropriate limits to determine whether it can operate on a particular system, or it might even alter its behavior to match the system to increase its portability across a varying range of limit settings and systems. Constant Description HP-UX Value -------------------------------------------------------------------- ARG_MAX Max length of arguments to 5120 +* exec(2) in bytes, including environment data CHAR_BIT Number of bits in a 8 = CHAR_MAX Max integer value of a 127 = CHAR_MIN Min integer value of a -128 = CHILD_MAX Max number of simultaneous 25 +-* processes per user ID CLK_TCK Number of clock ticks per 50 +# second DBL_DIG Digits of precision of a 15 + DBL_MAX Max positive value of a 1.7976931348623157e+308 + DBL_MIN Min positive value of a 4.94065645841246544e-324 - FCHR_MAX Max file offset in bytes INT_MAX +-* FLT_DIG Digits of precision of a 6 + FLT_MAX Max positive value of a 3.40282346638528860e+38 + FLT_MIN Min positive value of a 1.40129846432481707e-45 - INT_MAX Max decimal value of an 2147483647 + INT_MIN Min decimal value of an -2147483648 - LINE_MAX Max number of characters in 2048 = a single line LINK_MAX Max number of links to a 32767 +* single file LOCK_MAX Max number of entries in 32 +-* system lock table LONG_BIT Number of bits in a 32 + LONG_MAX Max decimal value of a 2147483647 + LONG_MIN Min decimal value of a -2147483648 - MAX_CANON Max number of bytes in ter- 512 +* minal canonical input line MAX_CHAR Max number of bytes in ter- MAX_INPUT =* minal input queue MAX_INPUT Max number of bytes in ter- 512 +* minal input queue NAME_MAX Max number of bytes in a 14 +* path name component NL_ARGMAX Max value of "digits" in 9 = calls to the NLS printf(3S) and scanf(3S) functions NL_MSGMAX Max message number in an NLS 32767 + message catalog NL_SETMAX Max set number in an NLS 255 + message catalog NL_TEXTMAX Max number of bytes in an 8192 + NLS message string NGROUPS_MAX Max number of supplementary 20 ++ groups per process OPEN_MAX Max number of files a 60 +* process can have open PASS_MAX Max number of chars in a 8 + password PATH_MAX Max number of characters in 1023 +* a path name excluding the null terminator PID_MAX Max value for a process ID 30000 + PIPE_BUF Max number of bytes atomic 8192 +* in write to a pipe PIPE_MAX Max number of bytes writable INT_MAX + to a pipe in one write PROC_MAX Max number of simultaneous 84 +-* processes on system SCHAR_MAX Max integer value of a 127 = SCHAR_MIN Min integer value of a -128 = SHRT_MAX Max decimal value of a 32767 + SHRT_MIN Min decimal value of a -32768 - STD_BLK Number of bytes in a physi- 512 + cal I/O block SYSPID_MAX Max process ID of system 4 +-* processes SYS_NMLN Length of strings returned 8 +* by uname(2) SYS_OPEN Max number of files open on 120 +-* system TMP_MAX Max number of unique names 17576 + generated by tmpnam(3S) UCHAR_MAX Max integer value of an 255 = UID_MAX Smallest unattainable value 2147483647 + for a user or group ID UINT_MAX Max decimal value of an 4294967295 + ULONG_MAX Max decimal value of an 4294967295 + USHRT_MAX Max decimal value of an 65535 + USI_MAX Max decimal value of an UINT_MAX =* WORD_BIT Number of bits in a "word" 32 + EXAMPLES
has an HP-UX value of which means that on all HP-UX systems the smallest unattainable value for a user or group ID is at least 2147483647. A particular system might be capable of supporting more than 2147483647 user or group IDs, in which case its file sets to a higher value; however, any application assuming such a higher value is not guaranteed to be portable to all HP-UX systems. has an HP-UX value of which means that on all HP-UX systems the smallest maximum number of supplementary groups per process is at least 20. A particular system might be capable of supporting more than 20 supplementary groups per process, in which case will return a larger value than that specified in however, any application assuming such a higher value is not guaranteed to be portable to all HP-UX systems. AUTHOR
limits was developed by HP. SEE ALSO
exec(2), fcntl(2), fork(2), getgroups(2), link(2), lockf(2), open(2), pathconf(2), sysconf(2), uname(2), write(2), printf(3S), scanf(3S), tmpnam(3S), passwd(4), values(5), termio(7). STANDARDS CONFORMANCE
limits(5)