logo

oasis-root

Compiled tree of Oasis Linux based on own branch at <https://hacktivis.me/git/oasis/> git clone https://anongit.hacktivis.me/git/oasis-root.git

limits.h.0p (29266B)


  1. '\" et
  2. .TH limits.h "0P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
  3. .\"
  4. .SH PROLOG
  5. This manual page is part of the POSIX Programmer's Manual.
  6. The Linux implementation of this interface may differ (consult
  7. the corresponding Linux manual page for details of Linux behavior),
  8. or the interface may not be implemented on Linux.
  9. .\"
  10. .SH NAME
  11. limits.h
  12. \(em implementation-defined constants
  13. .SH SYNOPSIS
  14. .LP
  15. .nf
  16. #include <limits.h>
  17. .fi
  18. .SH DESCRIPTION
  19. Some of the functionality described on this reference page extends the
  20. ISO\ C standard. Applications shall define the appropriate feature test macro
  21. (see the System Interfaces volume of POSIX.1\(hy2017,
  22. .IR "Section 2.2" ", " "The Compilation Environment")
  23. to enable the visibility of these symbols in this header.
  24. .P
  25. Many of the symbols listed here are not defined by the ISO/IEC\ 9899:\|1999 standard. Such symbols
  26. are not shown as CX shaded, except under the heading ``Numerical Limits''.
  27. .P
  28. The
  29. .IR <limits.h>
  30. header shall define macros and symbolic constants for various limits.
  31. Different categories of limits are described below, representing various
  32. limits on resources that the implementation imposes on applications.
  33. All macros and symbolic constants defined in this header shall be
  34. suitable for use in
  35. .BR #if
  36. preprocessing directives.
  37. .P
  38. Implementations may choose any appropriate value for each limit,
  39. provided it is not more restrictive than the Minimum Acceptable Values
  40. listed below. Symbolic constant names beginning with _POSIX may be
  41. found in
  42. .IR <unistd.h> .
  43. .P
  44. Applications should not assume any particular value for a limit. To
  45. achieve maximum portability, an application should not require more
  46. resource than the Minimum Acceptable Value quantity. However, an
  47. application wishing to avail itself of the full amount of a resource
  48. available on an implementation may make use of the value given in
  49. .IR <limits.h>
  50. on that particular implementation, by using the macros and symbolic
  51. constants listed below. It should be noted, however, that many of the
  52. listed limits are not invariant, and at runtime, the value of the limit
  53. may differ from those given in this header, for the following reasons:
  54. .IP " *" 4
  55. The limit is pathname-dependent.
  56. .IP " *" 4
  57. The limit differs between the compile and runtime machines.
  58. .P
  59. For these reasons, an application may use the
  60. \fIfpathconf\fR(),
  61. \fIpathconf\fR(),
  62. and
  63. \fIsysconf\fR()
  64. functions to determine the actual value of a limit at runtime.
  65. .P
  66. The items in the list ending in _MIN give the most negative values that
  67. the mathematical types are guaranteed to be capable of representing.
  68. Numbers of a more negative value may be supported on some
  69. implementations, as indicated by the
  70. .IR <limits.h>
  71. header on the implementation, but applications requiring such numbers
  72. are not guaranteed to be portable to all implementations. For positive
  73. constants ending in _MIN, this indicates the minimum acceptable value.
  74. .SS "Runtime Invariant Values (Possibly Indeterminate)"
  75. .P
  76. A definition of one of the symbolic constants in the following list
  77. shall be omitted from
  78. .IR <limits.h>
  79. on specific implementations where the corresponding value is equal to
  80. or greater than the stated minimum, but is unspecified.
  81. .P
  82. This indetermination might depend on the amount of available memory
  83. space on a specific instance of a specific implementation. The actual
  84. value supported by a specific instance shall be provided by the
  85. \fIsysconf\fR()
  86. function.
  87. .IP {AIO_LISTIO_MAX} 6
  88. .br
  89. Maximum number of I/O operations in a single list I/O call supported by
  90. the implementation.
  91. .br
  92. Minimum Acceptable Value:
  93. {_POSIX_AIO_LISTIO_MAX}
  94. .IP {AIO_MAX} 6
  95. .br
  96. Maximum number of outstanding asynchronous I/O operations supported by
  97. the implementation.
  98. .br
  99. Minimum Acceptable Value:
  100. {_POSIX_AIO_MAX}
  101. .IP {AIO_PRIO_DELTA_MAX} 6
  102. .br
  103. The maximum amount by which a process can decrease its asynchronous I/O
  104. priority level from its own scheduling priority.
  105. .br
  106. Minimum Acceptable Value: 0
  107. .IP {ARG_MAX} 6
  108. .br
  109. Maximum length of argument to the
  110. .IR exec
  111. functions including environment data.
  112. .br
  113. Minimum Acceptable Value:
  114. {_POSIX_ARG_MAX}
  115. .IP {ATEXIT_MAX} 6
  116. .br
  117. Maximum number of functions that may be registered with
  118. \fIatexit\fR().
  119. .br
  120. Minimum Acceptable Value: 32
  121. .IP {CHILD_MAX} 6
  122. .br
  123. Maximum number of simultaneous processes per real user ID.
  124. .br
  125. Minimum Acceptable Value:
  126. {_POSIX_CHILD_MAX}
  127. .IP {DELAYTIMER_MAX} 6
  128. .br
  129. Maximum number of timer expiration overruns.
  130. .br
  131. Minimum Acceptable Value:
  132. {_POSIX_DELAYTIMER_MAX}
  133. .IP {HOST_NAME_MAX} 6
  134. .br
  135. Maximum length of a host name (not including the terminating null)
  136. as returned from the
  137. \fIgethostname\fR()
  138. function.
  139. .br
  140. Minimum Acceptable Value:
  141. {_POSIX_HOST_NAME_MAX}
  142. .IP {IOV_MAX} 6
  143. .br
  144. Maximum number of
  145. .BR iovec
  146. structures that one process has available for use with
  147. \fIreadv\fR()
  148. or
  149. \fIwritev\fR().
  150. .br
  151. Minimum Acceptable Value:
  152. {_XOPEN_IOV_MAX}
  153. .IP {LOGIN_NAME_MAX} 6
  154. .br
  155. Maximum length of a login name.
  156. .br
  157. Minimum Acceptable Value:
  158. {_POSIX_LOGIN_NAME_MAX}
  159. .IP {MQ_OPEN_MAX} 6
  160. .br
  161. The maximum number of open message queue descriptors a process may
  162. hold.
  163. .br
  164. Minimum Acceptable Value:
  165. {_POSIX_MQ_OPEN_MAX}
  166. .IP {MQ_PRIO_MAX} 6
  167. .br
  168. The maximum number of message priorities supported by the implementation.
  169. .br
  170. Minimum Acceptable Value:
  171. {_POSIX_MQ_PRIO_MAX}
  172. .IP {OPEN_MAX} 6
  173. .br
  174. A value one greater than the maximum value that the system may
  175. assign to a newly-created file descriptor.
  176. .br
  177. Minimum Acceptable Value:
  178. {_POSIX_OPEN_MAX}
  179. .IP {PAGESIZE} 6
  180. .br
  181. Size in bytes of a page.
  182. .br
  183. Minimum Acceptable Value: 1
  184. .IP {PAGE_SIZE} 6
  185. .br
  186. Equivalent to
  187. {PAGESIZE}.
  188. If either
  189. {PAGESIZE}
  190. or
  191. {PAGE_SIZE}
  192. is defined, the other is defined with the same value.
  193. .IP {PTHREAD_DESTRUCTOR_ITERATIONS} 6
  194. .br
  195. Maximum number of attempts made to destroy a thread's thread-specific
  196. data values on thread exit.
  197. .br
  198. Minimum Acceptable Value:
  199. {_POSIX_THREAD_DESTRUCTOR_ITERATIONS}
  200. .IP {PTHREAD_KEYS_MAX} 6
  201. .br
  202. Maximum number of data keys that can be created by a process.
  203. .br
  204. Minimum Acceptable Value:
  205. {_POSIX_THREAD_KEYS_MAX}
  206. .IP {PTHREAD_STACK_MIN} 6
  207. .br
  208. Minimum size in bytes of thread stack storage.
  209. .br
  210. Minimum Acceptable Value: 0
  211. .IP {PTHREAD_THREADS_MAX} 6
  212. .br
  213. Maximum number of threads that can be created per process.
  214. .br
  215. Minimum Acceptable Value:
  216. {_POSIX_THREAD_THREADS_MAX}
  217. .IP {RTSIG_MAX} 6
  218. .br
  219. Maximum number of realtime signals reserved for application use in this
  220. implementation.
  221. .br
  222. Minimum Acceptable Value:
  223. {_POSIX_RTSIG_MAX}
  224. .IP {SEM_NSEMS_MAX} 6
  225. .br
  226. Maximum number of semaphores that a process may have.
  227. .br
  228. Minimum Acceptable Value:
  229. {_POSIX_SEM_NSEMS_MAX}
  230. .IP {SEM_VALUE_MAX} 6
  231. .br
  232. The maximum value a semaphore may have.
  233. .br
  234. Minimum Acceptable Value:
  235. {_POSIX_SEM_VALUE_MAX}
  236. .IP {SIGQUEUE_MAX} 6
  237. .br
  238. Maximum number of queued signals that a process may send and have
  239. pending at the receiver(s) at any time.
  240. .br
  241. Minimum Acceptable Value:
  242. {_POSIX_SIGQUEUE_MAX}
  243. .IP {SS_REPL_MAX} 6
  244. .br
  245. The maximum number of replenishment operations that may be simultaneously
  246. pending for a particular sporadic server scheduler.
  247. .br
  248. Minimum Acceptable Value:
  249. {_POSIX_SS_REPL_MAX}
  250. .IP {STREAM_MAX} 6
  251. .br
  252. Maximum number of streams that one process can have open at one time.
  253. If defined, it has the same value as
  254. {FOPEN_MAX}
  255. (see
  256. .IR <stdio.h> ).
  257. .br
  258. Minimum Acceptable Value:
  259. {_POSIX_STREAM_MAX}
  260. .IP {SYMLOOP_MAX} 6
  261. .br
  262. Maximum number of symbolic links that can be reliably traversed in the
  263. resolution of a pathname in the absence of a loop.
  264. .br
  265. Minimum Acceptable Value:
  266. {_POSIX_SYMLOOP_MAX}
  267. .IP {TIMER_MAX} 6
  268. .br
  269. Maximum number of timers per process supported by the implementation.
  270. .br
  271. Minimum Acceptable Value:
  272. {_POSIX_TIMER_MAX}
  273. .IP {TRACE_EVENT_NAME_MAX} 6
  274. .br
  275. Maximum length of the trace event name (not including the terminating null).
  276. .br
  277. Minimum Acceptable Value:
  278. {_POSIX_TRACE_EVENT_NAME_MAX}
  279. .IP {TRACE_NAME_MAX} 6
  280. .br
  281. Maximum length of the trace generation version string or of the
  282. trace stream name (not including the terminating null).
  283. .br
  284. Minimum Acceptable Value:
  285. {_POSIX_TRACE_NAME_MAX}
  286. .IP {TRACE_SYS_MAX} 6
  287. .br
  288. Maximum number of trace streams that may simultaneously exist in
  289. the system.
  290. .br
  291. Minimum Acceptable Value:
  292. {_POSIX_TRACE_SYS_MAX}
  293. .IP {TRACE_USER_EVENT_MAX} 6
  294. .br
  295. Maximum number of user trace event type identifiers that may
  296. simultaneously exist in a traced process, including the predefined
  297. user trace event POSIX_TRACE_UNNAMED_USER_EVENT.
  298. .br
  299. Minimum Acceptable Value:
  300. {_POSIX_TRACE_USER_EVENT_MAX}
  301. .IP {TTY_NAME_MAX} 6
  302. .br
  303. Maximum length of terminal device name.
  304. .br
  305. Minimum Acceptable Value:
  306. {_POSIX_TTY_NAME_MAX}
  307. .IP {TZNAME_MAX} 6
  308. .br
  309. Maximum number of bytes supported for the name of a timezone (not of
  310. the
  311. .IR TZ
  312. variable).
  313. .br
  314. Minimum Acceptable Value:
  315. {_POSIX_TZNAME_MAX}
  316. .TP 10
  317. .BR Note:
  318. The length given by
  319. {TZNAME_MAX}
  320. does not include the quoting characters mentioned in
  321. .IR "Section 8.3" ", " "Other Environment Variables".
  322. .P
  323. .SS "Pathname Variable Values"
  324. .P
  325. The values in the following list may be constants within an
  326. implementation or may vary from one pathname to another. For example,
  327. file systems or directories may have different characteristics.
  328. .P
  329. A definition of one of the symbolic constants in the following list
  330. shall be omitted from the
  331. .IR <limits.h>
  332. header on specific implementations where the corresponding value is
  333. equal to or greater than the stated minimum, but where the value can
  334. vary depending on the file to which it is applied. The actual value
  335. supported for a specific pathname shall be provided by the
  336. \fIpathconf\fR()
  337. function.
  338. .IP {FILESIZEBITS} 6
  339. .br
  340. Minimum number of bits needed to represent, as a signed integer value,
  341. the maximum size of a regular file allowed in the specified directory.
  342. .br
  343. Minimum Acceptable Value: 32
  344. .IP {LINK_MAX} 6
  345. .br
  346. Maximum number of links to a single file.
  347. .br
  348. Minimum Acceptable Value:
  349. {_POSIX_LINK_MAX}
  350. .IP {MAX_CANON} 6
  351. .br
  352. Maximum number of bytes in a terminal canonical input line.
  353. .br
  354. Minimum Acceptable Value:
  355. {_POSIX_MAX_CANON}
  356. .IP {MAX_INPUT} 6
  357. .br
  358. Minimum number of bytes for which space is available in a terminal
  359. input queue; therefore, the maximum number of bytes a conforming
  360. application may require to be typed as input before reading them.
  361. .br
  362. Minimum Acceptable Value:
  363. {_POSIX_MAX_INPUT}
  364. .IP {NAME_MAX} 6
  365. .br
  366. Maximum number of bytes in a filename (not including the terminating
  367. null of a filename string).
  368. .br
  369. Minimum Acceptable Value:
  370. {_POSIX_NAME_MAX}
  371. .br
  372. Minimum Acceptable Value:
  373. {_XOPEN_NAME_MAX}
  374. .IP {PATH_MAX} 6
  375. .br
  376. Maximum number of bytes the implementation will store as a pathname in
  377. a user-supplied buffer of unspecified size, including the terminating
  378. null character. Minimum number the implementation will accept as the
  379. maximum number of bytes in a pathname.
  380. .br
  381. Minimum Acceptable Value:
  382. {_POSIX_PATH_MAX}
  383. .br
  384. Minimum Acceptable Value:
  385. {_XOPEN_PATH_MAX}
  386. .IP {PIPE_BUF} 6
  387. .br
  388. Maximum number of bytes that is guaranteed to be atomic when writing to
  389. a pipe.
  390. .br
  391. Minimum Acceptable Value:
  392. {_POSIX_PIPE_BUF}
  393. .IP {POSIX_ALLOC_SIZE_MIN} 6
  394. .br
  395. Minimum number of bytes of storage actually allocated for any portion
  396. of a file.
  397. .br
  398. Minimum Acceptable Value: Not specified.
  399. .IP {POSIX_REC_INCR_XFER_SIZE} 6
  400. .br
  401. Recommended increment for file transfer sizes between the
  402. {POSIX_REC_MIN_XFER_SIZE}
  403. and
  404. {POSIX_REC_MAX_XFER_SIZE}
  405. values.
  406. .br
  407. Minimum Acceptable Value: Not specified.
  408. .IP {POSIX_REC_MAX_XFER_SIZE} 6
  409. .br
  410. Maximum recommended file transfer size.
  411. .br
  412. Minimum Acceptable Value: Not specified.
  413. .IP {POSIX_REC_MIN_XFER_SIZE} 6
  414. .br
  415. Minimum recommended file transfer size.
  416. .br
  417. Minimum Acceptable Value: Not specified.
  418. .IP {POSIX_REC_XFER_ALIGN} 6
  419. .br
  420. Recommended file transfer buffer alignment.
  421. .br
  422. Minimum Acceptable Value: Not specified.
  423. .IP {SYMLINK_MAX} 6
  424. .br
  425. Maximum number of bytes in a symbolic link.
  426. .br
  427. Minimum Acceptable Value:
  428. {_POSIX_SYMLINK_MAX}
  429. .SS "Runtime Increasable Values"
  430. .P
  431. The magnitude limitations in the following list shall be fixed by
  432. specific implementations. An application should assume that the value
  433. of the symbolic constant defined by
  434. .IR <limits.h>
  435. in a specific implementation is the minimum that pertains whenever the
  436. application is run under that implementation. A specific instance of a
  437. specific implementation may increase the value relative to that
  438. supplied by
  439. .IR <limits.h>
  440. for that implementation. The actual value supported by a specific
  441. instance shall be provided by the
  442. \fIsysconf\fR()
  443. function.
  444. .IP {BC_BASE_MAX} 6
  445. .br
  446. Maximum
  447. .IR obase
  448. values allowed by the
  449. .IR bc
  450. utility.
  451. .br
  452. Minimum Acceptable Value:
  453. {_POSIX2_BC_BASE_MAX}
  454. .IP {BC_DIM_MAX} 6
  455. .br
  456. Maximum number of elements permitted in an array by the
  457. .IR bc
  458. utility.
  459. .br
  460. Minimum Acceptable Value:
  461. {_POSIX2_BC_DIM_MAX}
  462. .IP {BC_SCALE_MAX} 6
  463. .br
  464. Maximum
  465. .IR scale
  466. value allowed by the
  467. .IR bc
  468. utility.
  469. .br
  470. Minimum Acceptable Value:
  471. {_POSIX2_BC_SCALE_MAX}
  472. .IP {BC_STRING_MAX} 6
  473. .br
  474. Maximum length of a string constant accepted by the
  475. .IR bc
  476. utility.
  477. .br
  478. Minimum Acceptable Value:
  479. {_POSIX2_BC_STRING_MAX}
  480. .IP {CHARCLASS_NAME_MAX} 6
  481. .br
  482. Maximum number of bytes in a character class name.
  483. .br
  484. Minimum Acceptable Value:
  485. {_POSIX2_CHARCLASS_NAME_MAX}
  486. .IP {COLL_WEIGHTS_MAX} 6
  487. .br
  488. Maximum number of weights that can be assigned to an entry of the
  489. .IR LC_COLLATE
  490. .BR order
  491. keyword in the locale definition file; see
  492. .IR "Chapter 7" ", " "Locale".
  493. .br
  494. Minimum Acceptable Value:
  495. {_POSIX2_COLL_WEIGHTS_MAX}
  496. .IP {EXPR_NEST_MAX} 6
  497. .br
  498. Maximum number of expressions that can be nested within parentheses by
  499. the
  500. .IR expr
  501. utility.
  502. .br
  503. Minimum Acceptable Value:
  504. {_POSIX2_EXPR_NEST_MAX}
  505. .IP {LINE_MAX} 6
  506. .br
  507. Unless otherwise noted, the maximum length, in bytes, of a utility's
  508. input line (either standard input or another file), when the utility is
  509. described as processing text files. The length includes room for the
  510. trailing
  511. <newline>.
  512. .br
  513. Minimum Acceptable Value:
  514. {_POSIX2_LINE_MAX}
  515. .IP {NGROUPS_MAX} 6
  516. .br
  517. Maximum number of simultaneous supplementary group IDs per process.
  518. .br
  519. Minimum Acceptable Value:
  520. {_POSIX_NGROUPS_MAX}
  521. .IP {RE_DUP_MAX} 6
  522. .br
  523. Maximum number of repeated occurrences of a BRE or ERE interval
  524. expression; see
  525. .IR "Section 9.3.6" ", " "BREs Matching Multiple Characters"
  526. and
  527. .IR "Section 9.4.6" ", " "EREs Matching Multiple Characters".
  528. .br
  529. Minimum Acceptable Value:
  530. {_POSIX_RE_DUP_MAX}
  531. .SS "Maximum Values"
  532. .P
  533. The
  534. .IR <limits.h>
  535. header shall define the following symbolic constants with the values
  536. shown. These are the most restrictive values for certain features on
  537. an implementation. A conforming implementation shall provide values no
  538. larger than these values. A conforming application must not require a
  539. smaller value for correct operation.
  540. .IP {_POSIX_CLOCKRES_MIN} 6
  541. .br
  542. The resolution of the CLOCK_REALTIME clock, in nanoseconds.
  543. .br
  544. Value: 20 000 000
  545. .RS 6
  546. .P
  547. If the Monotonic Clock option is supported, the resolution of the
  548. CLOCK_MONOTONIC clock, in nanoseconds, is represented by
  549. {_POSIX_CLOCKRES_MIN}.
  550. .RE
  551. .SS "Minimum Values"
  552. .P
  553. The
  554. .IR <limits.h>
  555. header shall define the following symbolic constants with the values
  556. shown. These are the most restrictive values for certain features on
  557. an implementation conforming to this volume of POSIX.1\(hy2017. Related symbolic constants are
  558. defined elsewhere in this volume of POSIX.1\(hy2017 which reflect the actual implementation and
  559. which need not be as restrictive. For each of these limits, a conforming
  560. implementation shall provide a value at least this large or shall have
  561. no limit. A strictly conforming application must not require a larger
  562. value for correct operation.
  563. .IP {_POSIX_AIO_LISTIO_MAX} 6
  564. .br
  565. The number of I/O operations that can be specified in a list I/O call.
  566. .br
  567. Value: 2
  568. .IP {_POSIX_AIO_MAX} 6
  569. .br
  570. The number of outstanding asynchronous I/O operations.
  571. .br
  572. Value: 1
  573. .IP {_POSIX_ARG_MAX} 6
  574. .br
  575. Maximum length of argument to the
  576. .IR exec
  577. functions including environment data.
  578. .br
  579. Value: 4 096
  580. .IP {_POSIX_CHILD_MAX} 6
  581. .br
  582. Maximum number of simultaneous processes per real user ID.
  583. .br
  584. Value: 25
  585. .IP {_POSIX_DELAYTIMER_MAX} 6
  586. .br
  587. The number of timer expiration overruns.
  588. .br
  589. Value: 32
  590. .IP {_POSIX_HOST_NAME_MAX} 6
  591. .br
  592. Maximum length of a host name (not including the terminating null)
  593. as returned from the
  594. \fIgethostname\fR()
  595. function.
  596. .br
  597. Value: 255
  598. .IP {_POSIX_LINK_MAX} 6
  599. .br
  600. Maximum number of links to a single file.
  601. .br
  602. Value: 8
  603. .IP {_POSIX_LOGIN_NAME_MAX} 6
  604. .br
  605. The size of the storage required for a login name, in bytes
  606. (including the terminating null).
  607. .br
  608. Value: 9
  609. .IP {_POSIX_MAX_CANON} 6
  610. .br
  611. Maximum number of bytes in a terminal canonical input queue.
  612. .br
  613. Value: 255
  614. .IP {_POSIX_MAX_INPUT} 6
  615. .br
  616. Maximum number of bytes allowed in a terminal input queue.
  617. .br
  618. Value: 255
  619. .IP {_POSIX_MQ_OPEN_MAX} 6
  620. .br
  621. The number of message queues that can be open for a single process.
  622. .br
  623. Value: 8
  624. .IP {_POSIX_MQ_PRIO_MAX} 6
  625. .br
  626. The maximum number of message priorities supported by the implementation.
  627. .br
  628. Value: 32
  629. .IP {_POSIX_NAME_MAX} 6
  630. .br
  631. Maximum number of bytes in a filename (not including the terminating
  632. null of a filename string).
  633. .br
  634. Value: 14
  635. .IP {_POSIX_NGROUPS_MAX} 6
  636. .br
  637. Maximum number of simultaneous supplementary group IDs per process.
  638. .br
  639. Value: 8
  640. .IP {_POSIX_OPEN_MAX} 6
  641. .br
  642. A value one greater than the maximum value that the system may assign
  643. to a newly-created file descriptor.
  644. .br
  645. Value: 20
  646. .IP {_POSIX_PATH_MAX} 6
  647. .br
  648. Minimum number the implementation will accept as the maximum number of
  649. bytes in a pathname.
  650. .br
  651. Value: 256
  652. .IP {_POSIX_PIPE_BUF} 6
  653. .br
  654. Maximum number of bytes that is guaranteed to be atomic when writing to
  655. a pipe.
  656. .br
  657. Value: 512
  658. .IP {_POSIX_RE_DUP_MAX} 6
  659. .br
  660. Maximum number of repeated occurrences of a BRE or ERE interval
  661. expression; see
  662. .IR "Section 9.3.6" ", " "BREs Matching Multiple Characters"
  663. and
  664. .IR "Section 9.4.6" ", " "EREs Matching Multiple Characters".
  665. .br
  666. Value: 255
  667. .IP {_POSIX_RTSIG_MAX} 6
  668. .br
  669. The number of realtime signal numbers reserved for application use.
  670. .br
  671. Value: 8
  672. .IP {_POSIX_SEM_NSEMS_MAX} 6
  673. .br
  674. The number of semaphores that a process may have.
  675. .br
  676. Value: 256
  677. .IP {_POSIX_SEM_VALUE_MAX} 6
  678. .br
  679. The maximum value a semaphore may have.
  680. .br
  681. Value: 32 767
  682. .IP {_POSIX_SIGQUEUE_MAX} 6
  683. .br
  684. The number of queued signals that a process may send and have pending
  685. at the receiver(s) at any time.
  686. .br
  687. Value: 32
  688. .IP {_POSIX_SSIZE_MAX} 6
  689. .br
  690. The value that can be stored in an object of type
  691. .BR ssize_t .
  692. .br
  693. Value: 32 767
  694. .IP {_POSIX_SS_REPL_MAX} 6
  695. .br
  696. The number of replenishment operations that may be simultaneously
  697. pending for a particular sporadic server scheduler.
  698. .br
  699. Value: 4
  700. .IP {_POSIX_STREAM_MAX} 6
  701. .br
  702. The number of streams that one process can have open at one time.
  703. .br
  704. Value: 8
  705. .IP {_POSIX_SYMLINK_MAX} 6
  706. .br
  707. The number of bytes in a symbolic link.
  708. .br
  709. Value: 255
  710. .IP {_POSIX_SYMLOOP_MAX} 6
  711. .br
  712. The number of symbolic links that can be traversed in the resolution of
  713. a pathname in the absence of a loop.
  714. .br
  715. Value: 8
  716. .IP {_POSIX_THREAD_DESTRUCTOR_ITERATIONS} 6
  717. .br
  718. The number of attempts made to destroy a thread's thread-specific data
  719. values on thread exit.
  720. .br
  721. Value: 4
  722. .IP {_POSIX_THREAD_KEYS_MAX} 6
  723. .br
  724. The number of data keys per process.
  725. .br
  726. Value: 128
  727. .IP {_POSIX_THREAD_THREADS_MAX} 6
  728. .br
  729. The number of threads per process.
  730. .br
  731. Value: 64
  732. .IP {_POSIX_TIMER_MAX} 6
  733. .br
  734. The per-process number of timers.
  735. .br
  736. Value: 32
  737. .IP {_POSIX_TRACE_EVENT_NAME_MAX} 6
  738. .br
  739. The length in bytes of a trace event name (not including the terminating null).
  740. .br
  741. Value: 30
  742. .IP {_POSIX_TRACE_NAME_MAX} 6
  743. .br
  744. The length in bytes of a trace generation version string or a trace
  745. stream name (not including the terminating null).
  746. .br
  747. Value: 8
  748. .IP {_POSIX_TRACE_SYS_MAX} 6
  749. .br
  750. The number of trace streams that may simultaneously exist in the system.
  751. .br
  752. Value: 8
  753. .IP {_POSIX_TRACE_USER_EVENT_MAX} 6
  754. .br
  755. The number of user trace event type identifiers that may simultaneously
  756. exist in a traced process, including the predefined user trace event
  757. POSIX_TRACE_UNNAMED_USER_EVENT.
  758. .br
  759. Value: 32
  760. .IP {_POSIX_TTY_NAME_MAX} 6
  761. .br
  762. The size of the storage required for a terminal device name, in bytes
  763. (including the terminating null).
  764. .br
  765. Value: 9
  766. .IP {_POSIX_TZNAME_MAX} 6
  767. .br
  768. Maximum number of bytes supported for the name of a timezone (not of
  769. the
  770. .IR TZ
  771. variable).
  772. .br
  773. Value: 6
  774. .RS 6
  775. .TP 10
  776. .BR Note:
  777. The length given by
  778. {_POSIX_TZNAME_MAX}
  779. does not include the quoting characters mentioned in
  780. .IR "Section 8.3" ", " "Other Environment Variables".
  781. .P
  782. .RE
  783. .IP {_POSIX2_BC_BASE_MAX} 6
  784. .br
  785. Maximum
  786. .IR obase
  787. values allowed by the
  788. .IR bc
  789. utility.
  790. .br
  791. Value: 99
  792. .IP {_POSIX2_BC_DIM_MAX} 6
  793. .br
  794. Maximum number of elements permitted in an array by the
  795. .IR bc
  796. utility.
  797. .br
  798. Value: 2 048
  799. .IP {_POSIX2_BC_SCALE_MAX} 6
  800. .br
  801. Maximum
  802. .IR scale
  803. value allowed by the
  804. .IR bc
  805. utility.
  806. .br
  807. Value: 99
  808. .IP {_POSIX2_BC_STRING_MAX} 6
  809. .br
  810. Maximum length of a string constant accepted by the
  811. .IR bc
  812. utility.
  813. .br
  814. Value: 1 000
  815. .IP {_POSIX2_CHARCLASS_NAME_MAX} 6
  816. .br
  817. Maximum number of bytes in a character class name.
  818. .br
  819. Value: 14
  820. .IP {_POSIX2_COLL_WEIGHTS_MAX} 6
  821. .br
  822. Maximum number of weights that can be assigned to an entry of the
  823. .IR LC_COLLATE
  824. .BR order
  825. keyword in the locale definition file; see
  826. .IR "Chapter 7" ", " "Locale".
  827. .br
  828. Value: 2
  829. .IP {_POSIX2_EXPR_NEST_MAX} 6
  830. .br
  831. Maximum number of expressions that can be nested within parentheses by
  832. the
  833. .IR expr
  834. utility.
  835. .br
  836. Value: 32
  837. .IP {_POSIX2_LINE_MAX} 6
  838. .br
  839. Unless otherwise noted, the maximum length, in bytes, of a utility's
  840. input line (either standard input or another file), when the utility is
  841. described as processing text files. The length includes room for the
  842. trailing
  843. <newline>.
  844. .br
  845. Value: 2 048
  846. .IP {_POSIX2_RE_DUP_MAX} 6
  847. .br
  848. Maximum number of repeated occurrences of a BRE or ERE interval
  849. expression; see
  850. .IR "Section 9.3.6" ", " "BREs Matching Multiple Characters"
  851. and
  852. .IR "Section 9.4.6" ", " "EREs Matching Multiple Characters".
  853. .br
  854. Value: 255
  855. .IP {_XOPEN_IOV_MAX} 6
  856. .br
  857. Maximum number of
  858. .BR iovec
  859. structures that one process has available for use with
  860. \fIreadv\fR()
  861. or
  862. \fIwritev\fR().
  863. .br
  864. Value: 16
  865. .IP {_XOPEN_NAME_MAX} 6
  866. .br
  867. Maximum number of bytes in a filename (not including the terminating
  868. null of a filename string).
  869. .br
  870. Value: 255
  871. .IP {_XOPEN_PATH_MAX} 6
  872. .br
  873. Minimum number the implementation will accept as the maximum number of
  874. bytes in a pathname.
  875. .br
  876. Value: 1\|024
  877. .SS "Numerical Limits"
  878. .P
  879. The
  880. .IR <limits.h>
  881. header shall define the following macros and, except for
  882. {CHAR_BIT},
  883. {LONG_BIT},
  884. {MB_LEN_MAX},
  885. and
  886. {WORD_BIT},
  887. they shall be replaced by expressions that have the same type as
  888. would an expression that is an object of the corresponding type
  889. converted according to the integer promotions.
  890. .P
  891. If the value of an object of type
  892. .BR char
  893. is treated as a signed integer when used in an expression, the value of
  894. {CHAR_MIN}
  895. is the same as that of
  896. {SCHAR_MIN}
  897. and the value of
  898. {CHAR_MAX}
  899. is the same as that of
  900. {SCHAR_MAX}.
  901. Otherwise, the value of
  902. {CHAR_MIN}
  903. is 0 and the value of
  904. {CHAR_MAX}
  905. is the same as that of
  906. {UCHAR_MAX}.
  907. .IP {CHAR_BIT} 6
  908. .br
  909. Number of bits in a type
  910. .BR char .
  911. .br
  912. Value: 8
  913. .IP {CHAR_MAX} 6
  914. .br
  915. Maximum value for an object of type
  916. .BR char .
  917. .br
  918. Value:
  919. {UCHAR_MAX}
  920. or
  921. {SCHAR_MAX}
  922. .IP {CHAR_MIN} 6
  923. .br
  924. Minimum value for an object of type
  925. .BR char .
  926. .br
  927. Value:
  928. {SCHAR_MIN}
  929. or 0
  930. .IP {INT_MAX} 6
  931. .br
  932. Maximum value for an object of type
  933. .BR int .
  934. .br
  935. Minimum Acceptable Value: 2 147 483 647
  936. .IP {INT_MIN} 6
  937. .br
  938. Minimum value for an object of type
  939. .BR int .
  940. .br
  941. Maximum Acceptable Value: \-2 147 483 647
  942. .IP {LLONG_MAX} 6
  943. .br
  944. Maximum value for an object of type
  945. .BR "long long" .
  946. .br
  947. Minimum Acceptable Value: +9\|223\|372\|036\|854\|775\|807
  948. .IP {LLONG_MIN} 6
  949. .br
  950. Minimum value for an object of type
  951. .BR "long long" .
  952. .br
  953. Maximum Acceptable Value: \-9\|223\|372\|036\|854\|775\|807
  954. .IP {LONG_BIT} 6
  955. .br
  956. Number of bits in an object of type
  957. .BR long .
  958. .br
  959. Minimum Acceptable Value: 32
  960. .IP {LONG_MAX} 6
  961. .br
  962. Maximum value for an object of type
  963. .BR long .
  964. .br
  965. Minimum Acceptable Value: +2 147 483 647
  966. .IP {LONG_MIN} 6
  967. .br
  968. Minimum value for an object of type
  969. .BR long .
  970. .br
  971. Maximum Acceptable Value: \-2 147 483 647
  972. .IP {MB_LEN_MAX} 6
  973. .br
  974. Maximum number of bytes in a character, for any supported locale.
  975. .br
  976. Minimum Acceptable Value: 1
  977. .IP {SCHAR_MAX} 6
  978. .br
  979. Maximum value for an object of type
  980. .BR "signed char" .
  981. .br
  982. Value: +127
  983. .IP {SCHAR_MIN} 6
  984. .br
  985. Minimum value for an object of type
  986. .BR "signed char" .
  987. .br
  988. Value: \-128
  989. .IP {SHRT_MAX} 6
  990. .br
  991. Maximum value for an object of type
  992. .BR short .
  993. .br
  994. Minimum Acceptable Value: +32 767
  995. .IP {SHRT_MIN} 6
  996. .br
  997. Minimum value for an object of type
  998. .BR short .
  999. .br
  1000. Maximum Acceptable Value: \-32 767
  1001. .IP {SSIZE_MAX} 6
  1002. .br
  1003. Maximum value for an object of type
  1004. .BR ssize_t .
  1005. .br
  1006. Minimum Acceptable Value:
  1007. {_POSIX_SSIZE_MAX}
  1008. .IP {UCHAR_MAX} 6
  1009. .br
  1010. Maximum value for an object of type
  1011. .BR "unsigned char" .
  1012. .br
  1013. Value: 255
  1014. .IP {UINT_MAX} 6
  1015. .br
  1016. Maximum value for an object of type
  1017. .BR unsigned .
  1018. .br
  1019. Minimum Acceptable Value: 4 294 967 295
  1020. .IP {ULLONG_MAX} 6
  1021. .br
  1022. Maximum value for an object of type
  1023. .BR "unsigned long long" .
  1024. .br
  1025. Minimum Acceptable Value: 18\|446\|744\|073\|709\|551\|615
  1026. .IP {ULONG_MAX} 6
  1027. .br
  1028. Maximum value for an object of type
  1029. .BR "unsigned long" .
  1030. .br
  1031. Minimum Acceptable Value: 4 294 967 295
  1032. .IP {USHRT_MAX} 6
  1033. .br
  1034. Maximum value for an object of type
  1035. .BR "unsigned short" .
  1036. .br
  1037. Minimum Acceptable Value: 65 535
  1038. .IP {WORD_BIT} 6
  1039. .br
  1040. Number of bits in an object of type
  1041. .BR int .
  1042. .br
  1043. Minimum Acceptable Value: 32
  1044. .SS "Other Invariant Values"
  1045. .P
  1046. The
  1047. .IR <limits.h>
  1048. header shall define the following symbolic constants:
  1049. .IP {NL_ARGMAX} 6
  1050. .br
  1051. Maximum value of
  1052. .IR n
  1053. in conversion specifications using the \fR"%\fIn\fR$"\fR
  1054. sequence in calls to the
  1055. \fIprintf\fR()
  1056. and
  1057. \fIscanf\fR()
  1058. families of functions.
  1059. .br
  1060. Minimum Acceptable Value: 9
  1061. .IP {NL_LANGMAX} 6
  1062. .br
  1063. Maximum number of bytes in a
  1064. .IR LANG
  1065. name.
  1066. .br
  1067. Minimum Acceptable Value: 14
  1068. .IP {NL_MSGMAX} 6
  1069. .br
  1070. Maximum message number.
  1071. .br
  1072. Minimum Acceptable Value: 32 767
  1073. .IP {NL_SETMAX} 6
  1074. .br
  1075. Maximum set number.
  1076. .br
  1077. Minimum Acceptable Value: 255
  1078. .IP {NL_TEXTMAX} 6
  1079. .br
  1080. Maximum number of bytes in a message string.
  1081. .br
  1082. Minimum Acceptable Value:
  1083. {_POSIX2_LINE_MAX}
  1084. .IP {NZERO} 6
  1085. .br
  1086. Default process priority.
  1087. .br
  1088. Minimum Acceptable Value: 20
  1089. .LP
  1090. .IR "The following sections are informative."
  1091. .SH "APPLICATION USAGE"
  1092. None.
  1093. .SH RATIONALE
  1094. A request was made to reduce the value of
  1095. {_POSIX_LINK_MAX}
  1096. from the value of 8 specified for it in the POSIX.1\(hy1990 standard to 2. The
  1097. standard developers decided to deny this request for several reasons:
  1098. .IP " *" 4
  1099. They wanted to avoid making any changes to the standard that could
  1100. break conforming applications, and the requested change could have that
  1101. effect.
  1102. .IP " *" 4
  1103. The use of multiple hard links to a file cannot always be replaced with
  1104. use of symbolic links. Symbolic links are semantically different from
  1105. hard links in that they associate a pathname with another pathname
  1106. rather than a pathname with a file. This has implications for access
  1107. control, file permanence, and transparency.
  1108. .IP " *" 4
  1109. The original standard developers had considered the issue of allowing
  1110. for implementations that did not in general support hard links, and
  1111. decided that this would reduce consensus on the standard.
  1112. .P
  1113. Systems that support historical versions of the development option of
  1114. the ISO\ POSIX\(hy2 standard retain the name
  1115. {_POSIX2_RE_DUP_MAX}
  1116. as an alias for
  1117. {_POSIX_RE_DUP_MAX}.
  1118. .IP {PATH_MAX} 6
  1119. .br
  1120. IEEE PASC Interpretation 1003.1 #15 addressed the inconsistency in the
  1121. standard with the definition of pathname and the description of
  1122. {PATH_MAX},
  1123. allowing application developers to allocate either
  1124. {PATH_MAX}
  1125. or
  1126. {PATH_MAX}+1
  1127. bytes. The inconsistency has been removed by correction to the
  1128. {PATH_MAX}
  1129. definition to include the null character. With this change,
  1130. applications that previously allocated
  1131. {PATH_MAX}
  1132. bytes will continue to succeed.
  1133. .IP {SYMLINK_MAX} 6
  1134. .br
  1135. This symbol refers to space for data that is stored in the file system,
  1136. as opposed to
  1137. {PATH_MAX}
  1138. which is the length of a name that can be passed to a function. In some
  1139. existing implementations, the pathnames pointed to by symbolic links
  1140. are stored in the
  1141. .IR inode s
  1142. of the links, so it is important that
  1143. {SYMLINK_MAX}
  1144. not be constrained to be as large as
  1145. {PATH_MAX}.
  1146. .SH "FUTURE DIRECTIONS"
  1147. None.
  1148. .SH "SEE ALSO"
  1149. .IR "Chapter 7" ", " "Locale",
  1150. .IR "\fB<stdio.h>\fP",
  1151. .IR "\fB<unistd.h>\fP"
  1152. .P
  1153. The System Interfaces volume of POSIX.1\(hy2017,
  1154. .IR "Section 2.2" ", " "The Compilation Environment",
  1155. .IR "\fIfpathconf\fR\^(\|)",
  1156. .IR "\fIsysconf\fR\^(\|)"
  1157. .\"
  1158. .SH COPYRIGHT
  1159. Portions of this text are reprinted and reproduced in electronic form
  1160. from IEEE Std 1003.1-2017, Standard for Information Technology
  1161. -- Portable Operating System Interface (POSIX), The Open Group Base
  1162. Specifications Issue 7, 2018 Edition,
  1163. Copyright (C) 2018 by the Institute of
  1164. Electrical and Electronics Engineers, Inc and The Open Group.
  1165. In the event of any discrepancy between this version and the original IEEE and
  1166. The Open Group Standard, the original IEEE and The Open Group Standard
  1167. is the referee document. The original Standard can be obtained online at
  1168. http://www.opengroup.org/unix/online.html .
  1169. .PP
  1170. Any typographical or formatting errors that appear
  1171. in this page are most likely
  1172. to have been introduced during the conversion of the source files to
  1173. man page format. To report such errors, see
  1174. https://www.kernel.org/doc/man-pages/reporting_bugs.html .