Float, standard I/O, and limit values

The values associated with the constants specified in <float.h> are as follows:

Macro Name Meaning Value
FLT_RADIX Radix of the exponent representation. 2
FLT_MANT_DIG Number of base-FLT_RADIX digits in the float significand. 24
DBL_MANT_DIG Number of base-FLT_RADIX digits in the double significand. 53
LDBL_MANT_DIG Number of base-FLT_RADIX digits in the long double significand. 64
FLT_DIG Number of decimal digits, q, such that any floating-point number with q digits can be rounded into a float representation and back again without change to the q digits. 6
DBL_DIG Number of decimal digits, q, such that any floating-point number with q digits can be rounded into a double representation and back again without change to the q digits. 15
LDBL_DIG Number of decimal digits, q, such that any floating-point number with q digits can be rounded into a long double representation and back again without change to the q digits. 18
FLT_MIN_EXP Minimum negative integer such that FLT_RADIX raised to that power minus 1 is a normalised float. -125
DBL_MIN_EXP Minimum negative integer such that FLT_RADIX raised to that power minus 1 is a normalised double. -1021
LDBL_MIN_EXP Minimum negative integer such that FLT_RADIX raised to that power minus 1 is a normalised long double. -16381
FLT_MIN_10_EXP Minimum negative integer such that 10 raised to that power is in the range of normalised floats. -37
DBL_MIN_10_EXP Minimum negative integer such that 10 raised to that power is in the range of normalised doubles. -307
LDBL_MIN_10_EXP Minimum negative integer such that 10 raised to that power is in the range of normalised long doubles. -4931
FLT_MAX_EXP Maximum integer such that FLT_RADIX raised to that power minus 1 is a representable finite float. 128
DBL_MAX_EXP Maximum integer such that FLT_RADIX raised to that power minus 1 is a representable finite double. 1024
LDBL_MAX_EXP Maximum integer such that FLT_RADIX raised to that power minus 1 is a representable finite long double. 16384
FLT_MAX_10_EXP Maximum integer such that 10 raised to that power is in the range of representable finite floats. 38
DBL_MAX_10_EXP Maximum integer such that 10 raised to that power is in the range of representable finite doubles. 308
LDBL_MAX_10_EXP Maximum integer such that 10 raised to that power is in the range of representable finite long doubles. 4932
FLT_MAX Maximum representable finite float. 3.40282347e+38
DBL_MAX Maximum representable finite double. 1.7976931348623157e308
LDBL_MAX Maximum representable finite long double. 1.189731495357231765e+4932
FLT_EPSILON Difference between 1.0 and the least value greater than 1.0 that is representable as a float. 1.1920929e-07
DBL_EPSILON Difference between 1.0 and the least value greater than 1.0 that is representable as a double. 2.2204460492503131e-16
LDBL_EPSILON Difference between 1.0 and the least value greater than 1.0 that is representable as a long double. 1.084202172485504434e-19
FLT_MIN Minimum normalised positive float. 1.17549435e-38
DBL_MIN Minimum normalised positive double. 2.2250738585072014e-308
LDBL_MIN Minimum normalised positive long double. 3.362103143112093506e-4932

The values associated with the following constants (optionally specified in <limits.h> are as follows:

Macro Name Meaning Minimum Maximum
DELAYTIMER_MAX Maximum number of timer expiration overruns. 1048576 1048576
FILESIZEBITS Minimum number of bits needed to represent as a signed integer value the maximum size of a regular file. 32 64
LINK_MAX Maximum number of links to a single file. 1 2147483647
MQ_OPEN_MAX The maximum number of open message queue descriptors a process may hold. 8 1024
MQ_PRIO_MAX The maximum number of message priorities supported by the implementation. 32 32
NAME_MAX Maximum number of bytes in a filename (not including the terminating null). 91 255
OPEN_MAX Maximum number of open files that one process can have open at any one time. 100 65534
PAGESIZE Size of a page in bytes. 4096 4096
PATH_MAX Maximum number of bytes in a pathname (including the terminating null). 255 1024
PTHREAD_DESTRUCTOR_ITERATIONS Maximum number of attempts made to destroy a thread's thread-specific data values when a thread exits. 4 4
PTHREAD_KEYS_MAX Maximum number of data keys that can be created by a process. 128 128
PTHREAD_STACK_MIN Minimum size in bytes of thread stack storage. 256 256
PTHREAD_THREADS_MAX Maximum number of threads that can be created per process. 65534 65534
RTSIG_MAX Maximum number of realtime signals reserved for application use in this implementation. 16 16
SEM_NSEMS_MAX Maximum number of semaphores that a process may have. Unlimited Unlimited
SEM_VALUE_MAX The maximum value a semaphore may have. 1073741823 1073741823
SIGQUEUE_MAX Maximum number of queued signals that a process may send and have pending at the receiver(s) at any time. Unlimited Unlimited
SS_REPL_MAX The maximum number of replenishment operations that may be simultaneously pending for a particular sporadic server scheduler. 65535 65535
STREAM_MAX Number of streams that one process can have open at one time. Unlimited Unlimited
TIMER_MAX Maximum number of timers per process supported by the implementation. 65534 65534
TRACE_EVENT_NAME_MAX Maximum length of the trace event name. Not supported Not supported
TRACE_NAME_MAX Maximum length of the trace generation version string or of the trace stream name. Not supported Not supported
TRACE_SYS_MAX Maximum number of trace streams that may simultaneously exist in the system. Not supported Not supported
TRACE_USER_EVENT_MAX Maximum number of user trace event type identifiers that may simultaneously exist in a traced process, including the predefined user trace event POSIX_TRACE_UNNAMED_USER_EVENT. Not supported Not supported
TZNAME_MAX Maximum number of bytes supported for the name of a time zone. 30 30

The values associated with the following numerical constants specified in the <limits.h> header file are as follows:

Macro Name Meaning Value
CHAR_MAX Maximum value of a char. 127
INT_MAX Maximum value of an int. 2147483647
LONG_MAX Maximum value of a long int. 2147483647
LLONG_MAX Maximum value of a long long. 9223372036854775807
SHRT_MAX Maximum value of a short. 32767
SSIZE_MAX Maximum value of an object of type ssize_t. 2147483647
UINT_MAX Maximum value of an unsigned int. 4294967295
ULONG_MAX Maximum value of an unsigned long int. 4294967295
ULLONG_MAX Maximum value of a unsigned long long. 18446744073709551615
USHRT_MAX Maximum value of an unsigned short int. 65535

The values associated with the numerical constants specified in the <stdio.h> header file are as follows:

Macro Name Meaning Value
FILENAME_MAX Maximum size in bytes of the longest filename string that the implementation guarantees can be opened. 255
FOPEN_MAX Number of streams which the implementation guarantees can be open simultaneously. 16
L_tmpnam Maximum size of character array to hold tmpnam() output. 255
TMP_MAX Minimum number of unique filenames generated by tmpnam(), which is the maximum number of times an application can call tmpnam() reliably. 17576