📄 c99.html
字号:
"../basedefs/math.h.html"><i><math.h></i></a>, <a href="../basedefs/mqueue.h.html"><i><mqueue.h></i></a>, <a href="../basedefs/netdb.h.html"><i><netdb.h></i></a>, <a href="../basedefs/netinet/in.h.html"><i><netinet/in.h></i></a>, <ahref="../basedefs/pthread.h.html"><i><pthread.h></i></a>, <a href="../basedefs/sched.h.html"><i><sched.h></i></a>, <ahref="../basedefs/semaphore.h.html"><i><semaphore.h></i></a>, <a href="../basedefs/spawn.h.html"><i><spawn.h></i></a>,<a href="../basedefs/sys/socket.h.html"><i><sys/socket.h></i></a>, <a href="../functions/pthread_kill.html"><i>pthread_kill</i>()</a>, and <a href="../functions/pthread_sigmask.html"><i>pthread_sigmask</i>()</a> in <a href="../basedefs/signal.h.html"><i><signal.h></i></a>, <a href="../basedefs/trace.h.html"><i><trace.h></i></a>, functionsmarked as extensions other than as part of the MF or MPR extensions in <a href="../basedefs/sys/mman.h.html"><i><sys/mman.h></i></a>, functions marked as ADV in <a href="../basedefs/fcntl.h.html"><i><fcntl.h></i></a>, and functions marked as CS, CPT, and TMR in <a href="../basedefs/time.h.html"><i><time.h></i></a>. This operand shall not be required to be present to cause a search of thislibrary.</dd><dt><b>-l l</b></dt><dd>This operand shall make visible all functions required by the C-language output of <a href="../utilities/lex.html"><i>lex</i></a> that are not made available through the <b>-l c</b> operand.</dd><dt><b>-l pthread</b></dt><dd>This operand shall make visible all functions referenced in <a href="../basedefs/pthread.h.html"><i><pthread.h></i></a>and <a href="../functions/pthread_kill.html"><i>pthread_kill</i>()</a> and <a href="../functions/pthread_sigmask.html"><i>pthread_sigmask</i>()</a> referenced in <a href="../basedefs/signal.h.html"><i><signal.h></i></a>. An implementation may search this library in the absence of thisoperand.</dd><dt><b>-l m</b></dt><dd>This operand shall make visible all functions referenced in <a href="../basedefs/math.h.html"><i><math.h></i></a>, <ahref="../basedefs/complex.h.html"><i><complex.h></i></a>, and <a href="../basedefs/fenv.h.html"><i><fenv.h></i></a>. Animplementation may search this library in the absence of this operand.</dd><dt><b>-l rt</b></dt><dd>This operand shall make visible all functions referenced in <a href="../basedefs/aio.h.html"><i><aio.h></i></a>, <a href="../basedefs/mqueue.h.html"><i><mqueue.h></i></a>, <a href="../basedefs/sched.h.html"><i><sched.h></i></a>, <a href="../basedefs/semaphore.h.html"><i><semaphore.h></i></a>, and <a href="../basedefs/spawn.h.html"><i><spawn.h></i></a>,functions marked as extensions other than as part of the MF or MPR extensions in <a href="../basedefs/sys/mman.h.html"><i><sys/mman.h></i></a>, functions marked as ADV in <a href="../basedefs/fcntl.h.html"><i><fcntl.h></i></a>, and functions marked as CS, CPT, and TMR in <a href="../basedefs/time.h.html"><i><time.h></i></a>. An implementation may search this library in the absence of this operand.</dd><dt><b>-l trace</b></dt><dd>This operand shall make visible all functions referenced in <a href="../basedefs/trace.h.html"><i><trace.h></i></a>. Animplementation may search this library in the absence of this operand.</dd><dt><b>-l xnet</b></dt><dd>This operand makes visible all functions referenced in <a href="../basedefs/arpa/inet.h.html"><i><arpa/inet.h></i></a>,<a href="../basedefs/netdb.h.html"><i><netdb.h></i></a>, <a href="../basedefs/netinet/in.h.html"><i><netinet/in.h></i></a>, and <a href="../basedefs/sys/socket.h.html"><i><sys/socket.h></i></a>. An implementation may search this library in the absence of thisoperand.</dd><dt><b>-l y</b></dt><dd>This operand shall make visible all functions required by the C-language output of <a href="../utilities/yacc.html"><i>yacc</i></a> that are not made available through the <b>-l c</b> operand.</dd></dl><p>In the absence of options that inhibit invocation of the link editor, such as <b>-c</b> or <b>-E</b>, the <i>c99</i> utilityshall cause the equivalent of a <b>-l c</b> operand to be passed to the link editor as the last <b>-l</b> operand, causing itto be searched after all other object files and libraries are loaded.</p><p>It is unspecified whether the libraries <b>libc.a</b>, <b>libm.a</b>, <b>librt.a</b>, <b>libpthread.a</b>, <b>libl.a</b>,<b>liby.a</b>, or <b>libxnet.a</b> exist as regular files. The implementation may accept as <b>-l</b> operands names of objectsthat do not exist as regular files.</p><h5><a name="tag_04_12_13_02"></a>External Symbols</h5><p>The C compiler and link editor shall support the significance of external symbols up to a length of at least 31 bytes; theaction taken upon encountering symbols exceeding the implementation-defined maximum symbol length is unspecified.</p><p>The compiler and link editor shall support a minimum of 511 external symbols per source or object file, and a minimum of 4095external symbols in total. A diagnostic message shall be written to the standard output if the implementation-defined limit isexceeded; other actions are unspecified.</p><h5><a name="tag_04_12_13_03"></a>Programming Environments</h5><p>All implementations shall support one of the following programming environments as a default. Implementations may support morethan one of the following programming environments. Applications can use <a href="../functions/sysconf.html"><i>sysconf</i>()</a>or <a href="../utilities/getconf.html"><i>getconf</i></a> to determine which programming environments are supported.<br></p><center><b><a name="tagtcjh_11"></a> Table: Programming Environments: Type Sizes</b></center><center><table border="1" cellpadding="3" align="center"><tr valign="top"><th align="center"><p class="tent"><b>Programming Environment</b></p></th><th align="center"><p class="tent"><b>Bits in</b></p></th><th align="center"><p class="tent"><b>Bits in</b></p></th><th align="center"><p class="tent"><b>Bits in</b></p></th><th align="center"><p class="tent"><b>Bits in</b></p></th></tr><tr valign="top"><th align="center"><p class="tent"><b><i>getconf</i> Name</b></p></th><th align="center"><p class="tent"><b>int</b></p></th><th align="center"><p class="tent"><b>long</b></p></th><th align="center"><p class="tent"><b>pointer</b></p></th><th align="center"><p class="tent"><b>off_t</b></p></th></tr><tr valign="top"><td align="left"><p class="tent">_POSIX_V6_ILP32_OFF32</p></td><td align="left"><p class="tent">32</p></td><td align="left"><p class="tent">32</p></td><td align="left"><p class="tent">32</p></td><td align="left"><p class="tent">32</p></td></tr><tr valign="top"><td align="left"><p class="tent">_POSIX_V6_ILP32_OFFBIG</p></td><td align="left"><p class="tent">32</p></td><td align="left"><p class="tent">32</p></td><td align="left"><p class="tent">32</p></td><td align="left"><p class="tent">>=64</p></td></tr><tr valign="top"><td align="left"><p class="tent">_POSIX_V6_LP64_OFF64</p></td><td align="left"><p class="tent">32</p></td><td align="left"><p class="tent">64</p></td><td align="left"><p class="tent">64</p></td><td align="left"><p class="tent">64</p></td></tr><tr valign="top"><td align="left"><p class="tent">_POSIX_V6_LPBIG_OFFBIG</p></td><td align="left"><p class="tent">>=32</p></td><td align="left"><p class="tent">>=64</p></td><td align="left"><p class="tent">>=64</p></td><td align="left"><p class="tent">>=64</p></td></tr></table></center><p>All implementations shall support one or more environments where the widths of the following types are no greater than the widthof type <b>long</b>:</p><blockquote><b>blksize_t</b>, <b>cc_t</b>, <b>mode_t</b>, <b>nfds_t</b>, <b>pid_t</b>, <b>ptrdiff_t</b>, <b>size_t</b>,<b>speed_t</b>, <b>ssize_t</b>, <b>suseconds_t</b>, <b>tcflag_t</b>, <b>useconds_t</b>, <b>wchar_t</b>, <b>wint_t</b></blockquote><p>The executable files created when these environments are selected shall be in a proper format for execution by the <i>exec</i>family of functions. Each environment may be one of the ones in <a href="#tagtcjh_11">Programming Environments: Type Sizes</a> , orit may be another environment. The names for the environments that meet this requirement shall be output by a <a href="../utilities/getconf.html"><i>getconf</i></a> command using the _POSIX_V6_WIDTH_RESTRICTED_ENVS argument. If more than oneenvironment meets the requirement, the names of all such environments shall be output on separate lines. Any of these names canthen be used in a subsequent <a href="../utilities/getconf.html"><i>getconf</i></a> command to obtain the flags specific to thatenvironment with the following suffixes added as appropriate:</p><dl compact><dt>_CFLAGS</dt><dd>To get the C compiler flags.</dd><dt>_LDFLAGS</dt><dd>To get the linker/loader flags.</dd><dt>_LIBS</dt><dd>To get the libraries.</dd></dl><p>This requirement may be removed in a future version of IEEE Std 1003.1.</p><p>When this utility processes a file containing a function called <i>main</i>(), it shall be defined with a return type equivalentto <b>int</b>. Using return from the initial call to <i>main</i>() shall be equivalent (other than with respect to language scopeissues) to calling <a href="../functions/exit.html"><i>exit</i>()</a> with the returned value. Reaching the end of the initial callto <i>main</i>() shall be equivalent to calling <i>exit</i>(0). The implementation shall not declare a prototype for thisfunction.</p><p>Implementations provide configuration strings for C compiler flags, linker/loader flags, and libraries for each supportedenvironment. When an application needs to use a specific programming environment rather than the implementation default programmingenvironment while compiling, the application shall first verify that the implementation supports the desired environment. If thedesired programming environment is supported, the application shall then invoke <i>c99</i> with the appropriate C compiler flags asthe first options for the compile, the appropriate linker/loader flags after any other options but before any operands, and theappropriate libraries at the end of the operands.</p><p>Conforming applications shall not attempt to link together object files compiled for different programming models. Applicationsshall also be aware that binary data placed in shared memory or in files might not be recognized by applications built for otherprogramming models.<br></p><center><b>Table: Programming Environments: <i>c99</i> and <i>cc</i> Arguments</b></center><center><table border="1" cellpadding="3" align="center"><tr valign="top"><th align="center"><p class="tent"><b>Programming Environment</b></p></th><th align="center"><p class="tent"><b> </b></p></th><th align="center"><p class="tent"><b><i>c99</i> and <i>cc</i> Arguments</b></p></th></tr><tr valign="top"><th align="center"><p class="tent"><b><i>getconf</i> Name</b></p></th><th align="center"><p class="tent"><b>Use</b></p></th><th align="center"><p class="tent"><b><i>getconf</i> Name</b></p></th></tr><tr valign="top"><td align="left"><p class="tent">_POSIX_V6_ILP32_OFF32</p></td><td align="left"><p class="tent">C Compiler Flags</p></td><td align="left"><p class="tent">POSIX_V6_ILP32_OFF32_CFLAGS</p></td></tr><tr valign="top"><td align="left"><p class="tent"> </p></td><td align="left"><p class="tent">Linker/Loader Flags</p></td><td align="left"><p class="tent">POSIX_V6_ILP32_OFF32_LDFLAGS</p></td></tr><tr valign="top"><td align="left"><p class="tent"> </p></td><td align="left"><p class="tent">Libraries</p></td><td align="left"><p class="tent">POSIX_V6_ILP32_OFF32_LIBS</p></td></tr><tr valign="top"><td align="left"><p class="tent">_POSIX_V6_ILP32_OFFBIG</p></td><td align="left"><p class="tent">C Compiler Flags</p></td><td align="left"><p class="tent">POSIX_V6_ILP32_OFFBIG_CFLAGS</p></td></tr><tr valign="top"><td align="left"><p class="tent"> </p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -