<!DOCTYPE html PUBLIC "‐//W3C//DTD XHTML 1.1//EN"
        "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">     <html
xmlns="http://www.w3.org/1999/xhtml"> <head>
    <link            rel="stylesheet"             type="text/css"
href="../../../style.css" title="style" />
    <link  rel="stylesheet"  type="text/css"  href="../style.css"
title="style" />
    <meta             http‐equiv="content‐type"              con‐
tent="text/html;charset=utf‐8" />

    <title>limits.h.0p ‐ Linux manual page</title> </head>

<body>

<div        class="page‐top"><a       id="top_of_page"></a></div>
<!‐‐%%%TOP_BAR%%%‐‐> <!‐‐%%%PAGE_START%%%‐‐>

<table class="sec‐table"> <tr>
    <td>
        <p class="section‐dir"> <a href="#PROLOG">PROLOG</a> | <a
href="#NAME">NAME</a>  |  <a  href="#SYNOPSIS">SYNOPSIS</a>  | <a
href="#DESCRIPTION">DESCRIPTION</a> |  <a  href="#APPLICATION_US‐
AGE">APPLICATION&nbsp;USAGE</a>   |  <a  href="#RATIONALE">RATIO‐
NALE</a>   |   <a    href="#FUTURE_DIRECTIONS">FUTURE&nbsp;DIREC‐
TIONS</a>    |   <a   href="#SEE_ALSO">SEE&nbsp;ALSO</a>   |   <a
href="#COPYRIGHT">COPYRIGHT</a>
        </p>
    </td>
    <td class="search‐box">
        <div class="man‐search‐box">

            <form                method="get"                 ac‐
tion="http://www.google.com/search">
                <fieldset class="man‐search">
                    <input    type="text"    name="q"   size="10"
maxlength="255" value="" />
                    <input type="hidden"  name="sitesearch"  val‐
ue="man7.org/linux/man‐pages" />
                    <input  type="submit" name="sa" value="Search
online pages" />
                </fieldset>
            </form>

        </div>
    </td>
    <td> </td> </tr> </table>

<pre> <span class="headline">limits.h(0P)              POSIX Pro‐
grammer’s  Manual              limits.h(0P)</span>  </pre> <h2><a
id="PROLOG" href="#PROLOG"></a>PROLOG  &nbsp; &nbsp; &nbsp;  &nb‐
sp;        <a        href="#top_of_page"><span        class="top‐
link">top</span></a></h2><pre>
       This manual page is part of the POSIX Programmer’s Manual.
The Linux
       implementation of this interface may differ (consult the
       corresponding  Linux  manual page for details of Linux be‐
havior), or
       the interface may not be  implemented  on  Linux.   </pre>
<h2><a id="NAME" href="#NAME"></a>NAME  &nbsp; &nbsp; &nbsp; &nb‐
sp;        <a        href="#top_of_page"><span        class="top‐
link">top</span></a></h2><pre>
       limits.h  — implementation‐defined constants </pre> <h2><a
id="SYNOPSIS" href="#SYNOPSIS"></a>SYNOPSIS  &nbsp; &nbsp; &nbsp;
&nbsp;       <a       href="#top_of_page"><span       class="top‐
link">top</span></a></h2><pre>
       #include &lt;limits.h&gt; </pre>  <h2><a  id="DESCRIPTION"
href="#DESCRIPTION"></a>DESCRIPTION   &nbsp; &nbsp; &nbsp; &nbsp;
<a             href="#top_of_page"><span              class="top‐
link">top</span></a></h2><pre>
       Some of the functionality described on this reference page
extends
       the ISO C standard. Applications shall define  the  appro‐
priate feature
       test   macro   (see   the   System  Interfaces  volume  of
POSIX.1‐2008, <i>Section</i>
       <i>2.2</i>, <i>The Compilation Environment</i>) to  enable
the visibility of these
       symbols in this header.

       Many of the symbols listed here are not defined by the
       ISO/IEC  9899:1999 standard. Such symbols are not shown as
CX shaded,
       except under the heading ‘‘Numerical Limits’’.

       The <i>&lt;limits.h&gt;</i> header shall define macros and
symbolic constants for
       various  limits.   Different  categories of limits are de‐
scribed below,
       representing various limits on resources that  the  imple‐
mentation
       imposes  on  applications.   All  macros and symbolic con‐
stants defined
       in this  header  shall  be  suitable  for  use  in  <b>#if
</b>preprocessing
       directives.

       Implementations  may choose any appropriate value for each
limit,
       provided it is not more restrictive than the  Minimum  Ac‐
ceptable
       Values  listed  below.  Symbolic  constant names beginning
with _POSIX
       may be found in <i>&lt;unistd.h&gt;</i>.

       Applications should not assume any particular value for  a
limit. To
       achieve maximum portability, an application should not re‐
quire more
       resource than the Minimum Acceptable Value quantity.  How‐
ever, an
       application  wishing to avail itself of the full amount of
a resource
       available on an implementation may make use of  the  value
given in
       <i>&lt;limits.h&gt;</i> on that particular implementation,
by using the macros and
       symbolic constants listed below. It should be noted,  how‐
ever, that
       many  of  the listed limits are not invariant, and at run‐
time, the
       value of the limit may differ from  those  given  in  this
header, for
       the following reasons:

        *  The limit is pathname‐dependent.

        *   The limit differs between the compile and runtime ma‐
chines.

       For these reasons, an application may  use  the  <i>fpath‐
conf</i>(),
       <i>pathconf</i>(),  and  <i>sysconf</i>() functions to de‐
termine the actual value of
       a limit at runtime.

       The items in the list ending in _MIN give the  most  nega‐
tive values
       that  the  mathematical types are guaranteed to be capable
of
       representing.  Numbers of a more  negative  value  may  be
supported on
       some  implementations,  as  indicated  by  the <i>&lt;lim‐
its.h&gt;</i> header on the
       implementation, but applications  requiring  such  numbers
are not
       guaranteed to be portable to all implementations. For pos‐
itive
       constants ending in _MIN, this indicates the  minimum  ac‐
ceptable
       value.

   <b>Runtime Invariant Values (Possibly Indeterminate)</b>
       A  definition of one of the symbolic constants in the fol‐
lowing list
       shall be omitted from <i>&lt;limits.h&gt;</i> on  specific
implementations where
       the  corresponding  value  is equal to or greater than the
stated
       minimum, but is unspecified.

       This indetermination might depend on the amount of  avail‐
able memory
       space on a specific instance of a specific implementation.
The actual
       value supported by a specific instance shall  be  provided
by the
       <i>sysconf</i>() function.

       {AIO_LISTIO_MAX}
             Maximum  number  of  I/O operations in a single list
I/O call
             supported by the implementation.
             Minimum Acceptable Value: {_POSIX_AIO_LISTIO_MAX}

       {AIO_MAX}
             Maximum number of outstanding asynchronous I/O oper‐
ations
             supported by the implementation.
             Minimum Acceptable Value: {_POSIX_AIO_MAX}

       {AIO_PRIO_DELTA_MAX}
             The  maximum  amount by which a process can decrease
its
             asynchronous I/O priority level from its own  sched‐
uling
             priority.
             Minimum Acceptable Value: 0

       {ARG_MAX}
             Maximum  length of argument to the <i>exec</i> func‐
tions including
             environment data.
             Minimum Acceptable Value: {_POSIX_ARG_MAX}

       {ATEXIT_MAX}
             Maximum number of functions that may  be  registered
with
             <i>atexit</i>().
             Minimum Acceptable Value: 32

       {CHILD_MAX}
             Maximum  number  of  simultaneous processes per real
user ID.
             Minimum Acceptable Value: {_POSIX_CHILD_MAX}

       {DELAYTIMER_MAX}
             Maximum number of timer expiration overruns.
             Minimum Acceptable Value: {_POSIX_DELAYTIMER_MAX}

       {HOST_NAME_MAX}
             Maximum length of a host  name  (not  including  the
terminating
             null)  as  returned  from  the  <i>gethostname</i>()
function.
             Minimum Acceptable Value: {_POSIX_HOST_NAME_MAX}

       {IOV_MAX}
             Maximum number of <b>iovec </b>structures  that  one
process has
             available    for    use   with   <i>readv</i>()   or
<i>writev</i>().
             Minimum Acceptable Value: {_XOPEN_IOV_MAX}

       {LOGIN_NAME_MAX}
             Maximum length of a login name.
             Minimum Acceptable Value: {_POSIX_LOGIN_NAME_MAX}

       {MQ_OPEN_MAX}
             The maximum number of open message queue descriptors
a process
             may hold.
             Minimum Acceptable Value: {_POSIX_MQ_OPEN_MAX}

       {MQ_PRIO_MAX}
             The  maximum  number of message priorities supported
by the
             implementation.
             Minimum Acceptable Value: {_POSIX_MQ_PRIO_MAX}

       {OPEN_MAX}
             A value one greater than the maximum value that  the
system may
             assign to a newly‐created file descriptor.
             Minimum Acceptable Value: {_POSIX_OPEN_MAX}

       {PAGESIZE}
             Size in bytes of a page.
             Minimum Acceptable Value: 1

       {PAGE_SIZE}
             Equivalent  to  {PAGESIZE}.  If either {PAGESIZE} or
{PAGE_SIZE}
             is defined, the other is defined with the same  val‐
ue.

       {PTHREAD_DESTRUCTOR_ITERATIONS}
             Maximum   number  of  attempts  made  to  destroy  a
thread’s thread‐
             specific data values on thread exit.
             Minimum  Acceptable  Value:  {_POSIX_THREAD_DESTRUC‐
TOR_ITERATIONS}

       {PTHREAD_KEYS_MAX}
             Maximum number of data keys that can be created by a
process.
             Minimum Acceptable Value: {_POSIX_THREAD_KEYS_MAX}

       {PTHREAD_STACK_MIN}
             Minimum size in bytes of thread stack storage.
             Minimum Acceptable Value: 0

       {PTHREAD_THREADS_MAX}
             Maximum number of threads that can  be  created  per
process.
             Minimum               Acceptable              Value:
{_POSIX_THREAD_THREADS_MAX}

       {RE_DUP_MAX}
             Maximum number of repeated occurrences of a  BRE  or
ERE interval
             expression; see <i>Section 9.3.6</i>, <i>BREs Match‐
ing Multiple</i>
             <i>Characters</i> and <i>Section 9.4.6</i>,  <i>EREs
Matching Multiple</i>
             <i>Characters</i>.
             Minimum Acceptable Value: {_POSIX2_RE_DUP_MAX}

       {RTSIG_MAX}
             Maximum  number of realtime signals reserved for ap‐
plication use
             in this implementation.
             Minimum Acceptable Value: {_POSIX_RTSIG_MAX}

       {SEM_NSEMS_MAX}
             Maximum number of  semaphores  that  a  process  may
have.
             Minimum Acceptable Value: {_POSIX_SEM_NSEMS_MAX}

       {SEM_VALUE_MAX}
             The maximum value a semaphore may have.
             Minimum Acceptable Value: {_POSIX_SEM_VALUE_MAX}

       {SIGQUEUE_MAX}
             Maximum  number of queued signals that a process may
send and
             have pending at the receiver(s) at any time.
             Minimum Acceptable Value: {_POSIX_SIGQUEUE_MAX}

       {SS_REPL_MAX}
             The maximum number of replenishment operations  that
may be
             simultaneously  pending  for  a  particular sporadic
server
             scheduler.
             Minimum Acceptable Value: {_POSIX_SS_REPL_MAX}

       {STREAM_MAX}
             Maximum number of streams that one process can  have
open at one
             time.    If  defined,  it  has  the  same  value  as
{FOPEN_MAX} (see
             <i>&lt;stdio.h&gt;</i>).
             Minimum Acceptable Value: {_POSIX_STREAM_MAX}

       {SYMLOOP_MAX}
             Maximum number of symbolic links that can  be  reli‐
ably traversed
             in  the resolution of a pathname in the absence of a
loop.
             Minimum Acceptable Value: {_POSIX_SYMLOOP_MAX}

       {TIMER_MAX}
             Maximum number of timers per  process  supported  by
the
             implementation.
             Minimum Acceptable Value: {_POSIX_TIMER_MAX}

       {TRACE_EVENT_NAME_MAX}
             Maximum  length of the trace event name (not includ‐
ing the
             terminating null).
             Minimum              Acceptable               Value:
{_POSIX_TRACE_EVENT_NAME_MAX}

       {TRACE_NAME_MAX}
             Maximum  length  of  the  trace  generation  version
string or of the
             trace stream name  (not  including  the  terminating
null).
             Minimum Acceptable Value: {_POSIX_TRACE_NAME_MAX}

       {TRACE_SYS_MAX}
             Maximum  number of trace streams that may simultane‐
ously exist
             in the system.
             Minimum Acceptable Value: {_POSIX_TRACE_SYS_MAX}

       {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_US‐
ER_EVENT.
             Minimum    Acceptable    Value:    {_POSIX_TRACE_US‐
ER_EVENT_MAX}

       {TTY_NAME_MAX}
             Maximum length of terminal device name.
             Minimum Acceptable Value: {_POSIX_TTY_NAME_MAX}

       {TZNAME_MAX}
             Maximum number of bytes supported for the name of  a
timezone
             (not of the <i>TZ</i> variable).
             Minimum Acceptable Value: {_POSIX_TZNAME_MAX}

       <b>Note:     </b>The length given by {TZNAME_MAX} does not
include the
                 quoting  characters  mentioned   in   <i>Section
8.3</i>, <i>Other</i>
                 <i>Environment Variables</i>.

   <b>Pathname Variable Values</b>
       The  values  in the following list may be constants within
an
       implementation or may vary from one pathname  to  another.
For example,
       file  systems or directories may have different character‐
istics.

       A definition of one of the symbolic constants in the  fol‐
lowing list
       shall  be  omitted from the <i>&lt;limits.h&gt;</i> header
on specific
       implementations where the corresponding value is equal  to
or greater
       than  the stated minimum, but where the value can vary de‐
pending on
       the file to which it is applied. The actual value support‐
ed for a
       specific  pathname  shall  be  provided  by  the  <i>path‐
conf</i>() function.

       {FILESIZEBITS}
             Minimum number of bits needed  to  represent,  as  a
signed integer
             value, the maximum size of a regular file allowed in
the
             specified directory.
             Minimum Acceptable Value: 32

       {LINK_MAX}
             Maximum number of links to a single file.
             Minimum Acceptable Value: {_POSIX_LINK_MAX}

       {MAX_CANON}
             Maximum number of bytes in a terminal canonical  in‐
put line.
             Minimum Acceptable Value: {_POSIX_MAX_CANON}

       {MAX_INPUT}
             Minimum number of bytes for which space is available
in a
             terminal input queue; therefore, the maximum  number
of bytes a
             conforming  application  may  require to be typed as
input before
             reading them.
             Minimum Acceptable Value: {_POSIX_MAX_INPUT}

       {NAME_MAX}
             Maximum number of bytes in a filename (not including
the
             terminating null of a filename string).
             Minimum Acceptable Value: {_POSIX_NAME_MAX}
             Minimum Acceptable Value: {_XOPEN_NAME_MAX}

       {PATH_MAX}
             Maximum  number  of  bytes  the  implementation will
store as a
             pathname in a user‐supplied  buffer  of  unspecified
size,
             including  the  terminating  null character. Minimum
number the
             implementation will accept as the maximum number  of
bytes in a
             pathname.
             Minimum Acceptable Value: {_POSIX_PATH_MAX}
             Minimum Acceptable Value: {_XOPEN_PATH_MAX}

       {PIPE_BUF}
             Maximum  number  of  bytes  that is guaranteed to be
atomic when
             writing to a pipe.
             Minimum Acceptable Value: {_POSIX_PIPE_BUF}

       {POSIX_ALLOC_SIZE_MIN}
             Minimum number of bytes of storage actually allocat‐
ed for any
             portion of a file.
             Minimum Acceptable Value: Not specified.

       {POSIX_REC_INCR_XFER_SIZE}
             Recommended  increment  for  file transfer sizes be‐
tween the
             {POSIX_REC_MIN_XFER_SIZE}                        and
{POSIX_REC_MAX_XFER_SIZE} values.
             Minimum Acceptable Value: Not specified.

       {POSIX_REC_MAX_XFER_SIZE}
             Maximum recommended file transfer size.
             Minimum Acceptable Value: Not specified.

       {POSIX_REC_MIN_XFER_SIZE}
             Minimum recommended file transfer size.
             Minimum Acceptable Value: Not specified.

       {POSIX_REC_XFER_ALIGN}
             Recommended file transfer buffer alignment.
             Minimum Acceptable Value: Not specified.

       {SYMLINK_MAX}
             Maximum number of bytes in a symbolic link.
             Minimum Acceptable Value: {_POSIX_SYMLINK_MAX}

   <b>Runtime Increasable Values</b>
       The  magnitude  limitations in the following list shall be
fixed by
       specific implementations.  An  application  should  assume
that the value
       of   the   symbolic   constant   defined   by  <i>&lt;lim‐
its.h&gt;</i> in a specific
       implementation is the minimum that pertains  whenever  the
application
       is run under that implementation. A specific instance of a
specific
       implementation may increase the  value  relative  to  that
supplied by
       <i>&lt;limits.h&gt;</i> for that implementation. The actu‐
al value supported by a
       specific   instance   shall    be    provided    by    the
<i>sysconf</i>() function.

       {BC_BASE_MAX}
             Maximum <i>obase</i> values allowed by the <i>bc</i>
utility.
             Minimum Acceptable Value: {_POSIX2_BC_BASE_MAX}

       {BC_DIM_MAX}
             Maximum number of elements permitted in an array  by
the <i>bc</i>
             utility.
             Minimum Acceptable Value: {_POSIX2_BC_DIM_MAX}

       {BC_SCALE_MAX}
             Maximum  <i>scale</i> value allowed by the <i>bc</i>
utility.
             Minimum Acceptable Value: {_POSIX2_BC_SCALE_MAX}

       {BC_STRING_MAX}
             Maximum length of a string constant accepted by  the
<i>bc</i> utility.
             Minimum Acceptable Value: {_POSIX2_BC_STRING_MAX}

       {CHARCLASS_NAME_MAX}
             Maximum number of bytes in a character class name.
             Minimum     Acceptable     Value:     {_POSIX2_CHAR‐
CLASS_NAME_MAX}

       {COLL_WEIGHTS_MAX}
             Maximum number of weights that can be assigned to an
entry of
             the  <i>LC_COLLATE</i>  <b>order  </b>keyword in the
locale definition file; see
             <i>Chapter 7</i>, <i>Locale</i>.
             Minimum Acceptable Value: {_POSIX2_COLL_WEIGHTS_MAX}

       {EXPR_NEST_MAX}
             Maximum number of expressions  that  can  be  nested
within
             parentheses by the <i>expr</i> utility.
             Minimum Acceptable Value: {_POSIX2_EXPR_NEST_MAX}

       {LINE_MAX}
             Unless  otherwise  noted,  the  maximum  length,  in
bytes, of a
             utility’s input line (either standard input  or  an‐
other file),
             when  the  utility  is  described as processing text
files. The
             length  includes  room  for  the  trailing  &lt;new‐
line&gt;.
             Minimum Acceptable Value: {_POSIX2_LINE_MAX}

       {NGROUPS_MAX}
             Maximum  number  of simultaneous supplementary group
IDs per
             process.
             Minimum Acceptable Value: {_POSIX_NGROUPS_MAX}

       {RE_DUP_MAX}
             Maximum number of repeated occurrences of a  regular
expression
             permitted   when   using   the   interval   notation
<i>m</i>,<i>n</i>; see <i>Chapter</i>
             <i>9</i>, <i>Regular Expressions</i>.
             Minimum Acceptable Value: {_POSIX2_RE_DUP_MAX}

   <b>Maximum Values</b>
       The <i>&lt;limits.h&gt;</i> header shall define  the  fol‐
lowing symbolic constants
       with the values shown. These are the most restrictive val‐
ues for
       certain features on an implementation. A conforming imple‐
mentation
       shall  provide  values no larger than these values. A con‐
forming
       application must not require a smaller value  for  correct
operation.

       {_POSIX_CLOCKRES_MIN}
             The  resolution  of  the  CLOCK_REALTIME  clock,  in
nanoseconds.
             Value: 20 000 000

             If the Monotonic Clock option is supported, the res‐
olution of
             the CLOCK_MONOTONIC clock, in nanoseconds, is repre‐
sented by
             {_POSIX_CLOCKRES_MIN}.

   <b>Minimum Values</b>
       The <i>&lt;limits.h&gt;</i> header shall define  the  fol‐
lowing symbolic constants
       with the values shown. These are the most restrictive val‐
ues for
       certain features on an implementation conforming  to  this
volume of
       POSIX.1‐2008. Related symbolic constants are defined else‐
where in
       this volume of POSIX.1‐2008 which reflect the  actual  im‐
plementation
       and  which  need  not be as restrictive. For each of these
limits, a
       conforming implementation shall provide a value  at  least
this large
       or  shall have no limit. A strictly conforming application
must not
       require a larger value for correct operation.

       {_POSIX_AIO_LISTIO_MAX}
             The number of I/O operations that can  be  specified
in a list
             I/O call.
             Value: 2

       {_POSIX_AIO_MAX}
             The  number  of  outstanding asynchronous I/O opera‐
tions.
             Value: 1

       {_POSIX_ARG_MAX}
             Maximum length of argument to the <i>exec</i>  func‐
tions including
             environment data.
             Value: 4 096

       {_POSIX_CHILD_MAX}
             Maximum  number  of  simultaneous processes per real
user ID.
             Value: 25

       {_POSIX_DELAYTIMER_MAX}
             The number of timer expiration overruns.
             Value: 32

       {_POSIX_HOST_NAME_MAX}
             Maximum length of a host  name  (not  including  the
terminating
             null)  as  returned  from  the  <i>gethostname</i>()
function.
             Value: 255

       {_POSIX_LINK_MAX}
             Maximum number of links to a single file.
             Value: 8

       {_POSIX_LOGIN_NAME_MAX}
             The size of the storage required for a  login  name,
in bytes
             (including the terminating null).
             Value: 9

       {_POSIX_MAX_CANON}
             Maximum  number of bytes in a terminal canonical in‐
put queue.
             Value: 255

       {_POSIX_MAX_INPUT}
             Maximum number of bytes allowed in a terminal  input
queue.
             Value: 255

       {_POSIX_MQ_OPEN_MAX}
             The  number of message queues that can be open for a
single
             process.
             Value: 8

       {_POSIX_MQ_PRIO_MAX}
             The maximum number of message  priorities  supported
by the
             implementation.
             Value: 32

       {_POSIX_NAME_MAX}
             Maximum number of bytes in a filename (not including
the
             terminating null of a filename string).
             Value: 14

       {_POSIX_NGROUPS_MAX}
             Maximum number of simultaneous  supplementary  group
IDs per
             process.
             Value: 8

       {_POSIX_OPEN_MAX}
             A  value one greater than the maximum value that the
system may
             assign to a newly‐created file descriptor.
             Value: 20

       {_POSIX_PATH_MAX}
             Minimum number the implementation will accept as the
maximum
             number of bytes in a pathname.
             Value: 256

       {_POSIX_PIPE_BUF}
             Maximum  number  of  bytes  that is guaranteed to be
atomic when
             writing to a pipe.
             Value: 512

       {_POSIX_RE_DUP_MAX}
             The number of repeated occurrences of a BRE  permit‐
ted by the
             <i>regexec</i>() and <i>regcomp</i>() functions when
using the interval
             notation {>m</i>,<i>n</i>; see <i>Section 9.3.6</i>,
<i>BREs Matching Multiple</i>
             <i>Characters</i>.
             Value: 255

       {_POSIX_RTSIG_MAX}
             The  number  of realtime signal numbers reserved for
application
             use.
             Value: 8

       {_POSIX_SEM_NSEMS_MAX}
             The number of semaphores that a process may have.
             Value: 256

       {_POSIX_SEM_VALUE_MAX}
             The maximum value a semaphore may have.
             Value: 32 767

       {_POSIX_SIGQUEUE_MAX}
             The number of queued signals that a process may send
and have
             pending at the receiver(s) at any time.
             Value: 32

       {_POSIX_SSIZE_MAX}
             The  value  that  can be stored in an object of type
<b>ssize_t</b>.
             Value: 32 767

       {_POSIX_SS_REPL_MAX}
             The number of replenishment operations that may be
             simultaneously pending  for  a  particular  sporadic
server
             scheduler.
             Value: 4

       {_POSIX_STREAM_MAX}
             The number of streams that one process can have open
at one
             time.
             Value: 8

       {_POSIX_SYMLINK_MAX}
             The number of bytes in a symbolic link.
             Value: 255

       {_POSIX_SYMLOOP_MAX}
             The number of symbolic links that can  be  traversed
in the
             resolution of a pathname in the absence of a loop.
             Value: 8

       {_POSIX_THREAD_DESTRUCTOR_ITERATIONS}
             The  number  of  attempts made to destroy a thread’s
thread‐
             specific data values on thread exit.
             Value: 4

       {_POSIX_THREAD_KEYS_MAX}
             The number of data keys per process.
             Value: 128

       {_POSIX_THREAD_THREADS_MAX}
             The number of threads per process.
             Value: 64

       {_POSIX_TIMER_MAX}
             The per‐process number of timers.
             Value: 32

       {_POSIX_TRACE_EVENT_NAME_MAX}
             The length in bytes of a trace event name  (not  in‐
cluding the
             terminating null).
             Value: 30

       {_POSIX_TRACE_NAME_MAX}
             The  length  in  bytes of a trace generation version
string or a
             trace stream name  (not  including  the  terminating
null).
             Value: 8

       {_POSIX_TRACE_SYS_MAX}
             The  number of trace streams that may simultaneously
exist in
             the system.
             Value: 8

       {_POSIX_TRACE_USER_EVENT_MAX}
             The number of user trace event type identifiers that
may
             simultaneously  exist in a traced process, including
the
             predefined user trace event  POSIX_TRACE_UNNAMED_US‐
ER_EVENT.
             Value: 32

       {_POSIX_TTY_NAME_MAX}
             The  size of the storage required for a terminal de‐
vice name, in
             bytes (including the terminating null).
             Value: 9

       {_POSIX_TZNAME_MAX}
             Maximum number of bytes supported for the name of  a
timezone
             (not of the <i>TZ</i> variable).
             Value: 6

             <b>Note:      </b>The  length  given  by {_POSIX_TZ‐
NAME_MAX} does not
                       include the quoting  characters  mentioned
in <i>Section</i>
                       <i>8.3</i>,   <i>Other  Environment  Vari‐
ables</i>.

       {_POSIX2_BC_BASE_MAX}
             Maximum <i>obase</i> values allowed by the <i>bc</i>
utility.
             Value: 99

       {_POSIX2_BC_DIM_MAX}
             Maximum  number of elements permitted in an array by
the <i>bc</i>
             utility.
             Value: 2 048

       {_POSIX2_BC_SCALE_MAX}
             Maximum <i>scale</i> value allowed by the  <i>bc</i>
utility.
             Value: 99

       {_POSIX2_BC_STRING_MAX}
             Maximum  length of a string constant accepted by the
<i>bc</i> utility.
             Value: 1 000

       {_POSIX2_CHARCLASS_NAME_MAX}
             Maximum number of bytes in a character class name.
             Value: 14

       {_POSIX2_COLL_WEIGHTS_MAX}
             Maximum number of weights that can be assigned to an
entry of
             the  <i>LC_COLLATE</i>  <b>order  </b>keyword in the
locale definition file; see
             <i>Chapter 7</i>, <i>Locale</i>.
             Value: 2

       {_POSIX2_EXPR_NEST_MAX}
             Maximum number of expressions  that  can  be  nested
within
             parentheses by the <i>expr</i> utility.
             Value: 32

       {_POSIX2_LINE_MAX}
             Unless  otherwise  noted,  the  maximum  length,  in
bytes, of a
             utility’s input line (either standard input  or  an‐
other file),
             when  the  utility  is  described as processing text
files. The
             length  includes  room  for  the  trailing  &lt;new‐
line&gt;.
             Value: 2 048

       {_POSIX2_RE_DUP_MAX}
             Maximum  number of repeated occurrences of a regular
expression
             permitted   when   using   the   interval   notation
<i>m</i>,<i>n</i>; see <i>Chapter</i>
             <i>9</i>, <i>Regular Expressions</i>.
             Value: 255

       {_XOPEN_IOV_MAX}
             Maximum  number  of <b>iovec </b>structures that one
process has
             available   for   use   with    <i>readv</i>()    or
<i>writev</i>().
             Value: 16

       {_XOPEN_NAME_MAX}
             Maximum number of bytes in a filename (not including
the
             terminating null of a filename string).
             Value: 255

       {_XOPEN_PATH_MAX}
             Minimum number the implementation will accept as the
maximum
             number of bytes in a pathname.
             Value: 1024

   <b>Numerical Limits</b>
       The  <i>&lt;limits.h&gt;</i>  header shall define the fol‐
lowing macros and, except
       for {CHAR_BIT}, {LONG_BIT}, {MB_LEN_MAX}, and  {WORD_BIT},
they shall
       be  replaced  by  expressions  that  have the same type as
would an
       expression that is an object  of  the  corresponding  type
converted
       according to the integer promotions.

       If  the  value of an object of type <b>char </b>is treated
as a signed integer
       when used in an expression, the value of {CHAR_MIN} is the
same as
       that  of  {SCHAR_MIN}  and  the value of {CHAR_MAX} is the
same as that
       of {SCHAR_MAX}.  Otherwise, the value of {CHAR_MIN}  is  0
and the
       value of {CHAR_MAX} is the same as that of {UCHAR_MAX}.

       {CHAR_BIT}
             Number of bits in a type <b>char</b>.
             Value: 8

       {CHAR_MAX}
             Maximum value for an object of type <b>char</b>.
             Value: {UCHAR_MAX} or {SCHAR_MAX}

       {CHAR_MIN}
             Minimum value for an object of type <b>char</b>.
             Value: {SCHAR_MIN} or 0

       {INT_MAX}
             Maximum value for an object of type <b>int</b>.
             Minimum Acceptable Value: 2 147 483 647

       {INT_MIN}
             Minimum value for an object of type <b>int</b>.
             Maximum Acceptable Value: −2 147 483 647

       {LLONG_MAX}
             Maximum   value   for  an  object  of  type  <b>long
long</b>.
             Minimum Acceptable Value: +9223372036854775807

       {LLONG_MIN}
             Minimum  value  for  an  object  of   type   <b>long
long</b>.
             Maximum Acceptable Value: −9223372036854775807

       {LONG_BIT}
             Number of bits in an object of type <b>long</b>.
             Minimum Acceptable Value: 32

       {LONG_MAX}
             Maximum value for an object of type <b>long</b>.
             Minimum Acceptable Value: +2 147 483 647

       {LONG_MIN}
             Minimum value for an object of type <b>long</b>.
             Maximum Acceptable Value: −2 147 483 647

       {MB_LEN_MAX}
             Maximum number of bytes in a character, for any sup‐
ported
             locale.
             Minimum Acceptable Value: 1

       {SCHAR_MAX}
             Maximum  value  for  an  object  of  type  <b>signed
char</b>.
             Value: +127

       {SCHAR_MIN}
             Minimum  value  for  an  object  of  type  <b>signed
char</b>.
             Value: −128

       {SHRT_MAX}
             Maximum value for an object of type <b>short</b>.
             Minimum Acceptable Value: +32 767

       {SHRT_MIN}
             Minimum value for an object of type <b>short</b>.
             Maximum Acceptable Value: −32 767

       {SSIZE_MAX}
             Maximum value for an object of type <b>ssize_t</b>.
             Minimum Acceptable Value: {_POSIX_SSIZE_MAX}

       {UCHAR_MAX}
             Maximum value for  an  object  of  type  <b>unsigned
char</b>.
             Value: 255

       {UINT_MAX}
             Maximum value for an object of type <b>unsigned</b>.
             Minimum Acceptable Value: 4 294 967 295

       {ULLONG_MAX}
             Maximum value for an object of type <b>unsigned long
long</b>.
             Minimum Acceptable Value: 18446744073709551615

       {ULONG_MAX}
             Maximum value for  an  object  of  type  <b>unsigned
long</b>.
             Minimum Acceptable Value: 4 294 967 295

       {USHRT_MAX}
             Maximum  value  for  an  object  of type <b>unsigned
short</b>.
             Minimum Acceptable Value: 65 535

       {WORD_BIT}
             Number of bits in an object of type <b>int</b>.
             Minimum Acceptable Value: 32

   <b>Other Invariant Values</b>
       The <i>&lt;limits.h&gt;</i> header shall define  the  fol‐
lowing symbolic constants:

       {NL_ARGMAX}
             Maximum  value  of <i>n</i> in conversion specifica‐
tions using the "%<i>n</i>$"
             sequence  in  calls  to  the   <i>printf</i>()   and
<i>scanf</i>() families of
             functions.
             Minimum Acceptable Value: 9

       {NL_LANGMAX}
             Maximum number of bytes in a <i>LANG</i> name.
             Minimum Acceptable Value: 14

       {NL_MSGMAX}
             Maximum message number.
             Minimum Acceptable Value: 32 767

       {NL_SETMAX}
             Maximum set number.
             Minimum Acceptable Value: 255

       {NL_TEXTMAX}
             Maximum number of bytes in a message string.
             Minimum Acceptable Value: {_POSIX2_LINE_MAX}

       {NZERO}
             Default process priority.
             Minimum Acceptable Value: 20

       <i>The  following  sections  are  informative.</i>  </pre>
<h2><a  id="APPLICATION_USAGE"  href="#APPLICATION_USAGE"></a>AP‐
PLICATION    USAGE     &nbsp;    &nbsp;    &nbsp;    &nbsp;    <a
href="#top_of_page"><span                             class="top‐
link">top</span></a></h2><pre>
       None.     </pre>   <h2><a   id="RATIONALE"   href="#RATIO‐
NALE"></a>RATIONALE    &nbsp;    &nbsp;    &nbsp;    &nbsp;    <a
href="#top_of_page"><span                             class="top‐
link">top</span></a></h2><pre>
       A   request   was   made   to   reduce   the   value    of
{_POSIX_LINK_MAX} from the
       value  of  8 specified for it in the POSIX.1‐1990 standard
to 2. The
       standard developers decided to deny this request for  sev‐
eral reasons:

        *   They  wanted to avoid making any changes to the stan‐
dard that
           could break conforming applications, and the requested
change
           could have that effect.

        *  The use of multiple hard links to a file cannot always
be
           replaced with use of symbolic  links.  Symbolic  links
are
           semantically  different  from  hard links in that they
associate a
           pathname with another pathname rather than a  pathname
with a
           file.  This  has implications for access control, file
permanence,
           and transparency.

        *  The original standard developers  had  considered  the
issue of
           allowing  for  implementations that did not in general
support hard
           links, and decided that this would reduce consensus on
the
           standard.

       Systems  that  support historical versions of the develop‐
ment option of
       the    ISO    POSIX‐2    standard    retain    the    name
{_POSIX2_RE_DUP_MAX} as an
       alias for {_POSIX_RE_DUP_MAX}.

       {PATH_MAX}
             IEEE  PASC  Interpretation  1003.1 #15 addressed the
inconsistency
             in the standard with the definition of pathname  and
the
             description  of {PATH_MAX}, allowing application de‐
velopers to
             allocate either {PATH_MAX}  or  {PATH_MAX}+1  bytes.
The
             inconsistency  has been removed by correction to the
{PATH_MAX}
             definition to include the null character. With  this
change,
             applications  that  previously  allocated {PATH_MAX}
bytes will
             continue to succeed.

       {SYMLINK_MAX}
             This symbol refers to space for data that is  stored
in the file
             system, as opposed to {PATH_MAX} which is the length
of a name
             that can be passed to a function. In some existing
             implementations, the pathnames pointed to by symbol‐
ic links are
             stored  in  the <i>inode</i>s of the links, so it is
important that
             {SYMLINK_MAX} not be constrained to be as  large  as
{PATH_MAX}.    </pre>  <h2><a  id="FUTURE_DIRECTIONS"  href="#FU‐
TURE_DIRECTIONS"></a>FUTURE DIRECTIONS  &nbsp; &nbsp; &nbsp; &nb‐
sp;        <a        href="#top_of_page"><span        class="top‐
link">top</span></a></h2><pre>
       None.    </pre>   <h2><a   id="SEE_ALSO"    href="#SEE_AL‐
SO"></a>SEE    ALSO     &nbsp;    &nbsp;    &nbsp;    &nbsp;   <a
href="#top_of_page"><span                             class="top‐
link">top</span></a></h2><pre>
       <i>Chapter         7</i>,         <i>Locale</i>,        <a
href="../man0/stdio.h.0p.html">stdio.h(0p)</a>,                <a
href="../man0/unistd.h.0p.html">unistd.h(0p)</a>

       The  System  Interfaces volume of POSIX.1‐2008, <i>Section
2.2</i>, <i>The</i>
       <i>Compilation  Environment</i>,  <a  href="../man3/fpath‐
conf.3p.html">fpathconf(3p)</a>,                               <a
href="../man3/sysconf.3p.html">sysconf(3p)</a>   </pre>    <h2><a
id="COPYRIGHT"   href="#COPYRIGHT"></a>COPYRIGHT   &nbsp;  &nbsp;
&nbsp;   &nbsp;    <a    href="#top_of_page"><span    class="top‐
link">top</span></a></h2><pre>
       Portions  of  this  text  are  reprinted and reproduced in
electronic form
       from IEEE Std 1003.1, 2013 Edition, Standard for  Informa‐
tion
       Technology ‐‐ Portable Operating System Interface (POSIX),
The Open
       Group Base Specifications Issue 7, Copyright (C)  2013  by
the
       Institute of Electrical and Electronics Engineers, Inc and
The Open
       Group.  (This is POSIX.1‐2008 with the 2013 Technical Cor‐
rigendum 1
       applied.)  In  the  event  of any discrepancy between this
version and
       the original IEEE and The Open Group Standard, the  origi‐
nal IEEE and
       The Open Group Standard is the referee document. The orig‐
inal
       Standard    can    be    obtained     online     at     <a
href="http://www.unix.org/online.html">http://www.unix.org/on‐
line.html</a> .

       Any typographical or formatting errors that appear in this
page are
       most  likely to have been introduced during the conversion
of the
       source files to man page format. To  report  such  errors,
see
       <a      href="https://www.kernel.org/doc/man‐pages/report‐
ing_bugs.html">https://www.kernel.org/doc/man‐pages/report‐
ing_bugs.html</a> .

<span  class="footline">IEEE/The  Open Group                 2013
limits.h(0P)</span> </pre>

<hr class="end‐man‐text" />

<hr class="start‐footer" />

<div class="footer">

<table class="colophon‐table">
    <tr>
    <td class="pub‐info">
        <p>
            HTML rendering created 2019‐08‐02
            by  <a  href="http://man7.org/mtk/index.html">Michael
Kerrisk</a>,
            author of
            <a  href="http://man7.org/tlpi/"><em>The  Linux  Pro‐
gramming Interface</em></a>,
            maintainer of the
            <a href="https://www.kernel.org/doc/man‐pages/">Linux
<em>man‐pages</em> project</a>.
        </p>
        <p>
            For details of in‐depth
            <strong>Linux/UNIX  system programming training cour‐
ses</strong>
            that I teach,  look  <a  href="http://man7.org/train‐
ing/">here</a>.
        </p>
        <p>
            Hosting    by    <a   href="http://www.jambit.com/in‐
dex_en.html">jambit GmbH</a>.
        </p>
        <p>
            <a href="http://validator.w3.org/check?uri=referer">
            <img src="http://www.w3.org/Icons/valid‐xhtml11"
                alt="Valid XHTML 1.1" height="31" width="88" />
            </a>
        </p>
    </td>
    <td class="colophon‐divider">
    </td>
    <td class="tlpi‐cover">
        <a                      href="http://man7.org/tlpi/"><img
src="http://man7.org/tlpi/cover/TLPI‐front‐cover‐vsmall.png"
alt="Cover of TLPI" /></a>
    </td>
    </tr> </table>

</div>

<hr class="end‐footer" />

</body> </html>