Путеводитель по Руководству Linux

  User  |  Syst  |  Libr  |  Device  |  Files  |  Other  |  Admin  |  Head  |



   c99.1p    ( 1 )

компилировать стандартные программы на C (compile standard C programs)

Использование в приложениях (Application usage)

Since the c99 utility usually creates files in the current
       directory during the compilation process, it is typically
       necessary to run the c99 utility in a directory in which a file
       can be created.

On systems providing POSIX Conformance (see the Base Definitions volume of POSIX.1‐2017, Chapter 2, Conformance), c99 is required only with the C-Language Development option; XSI-conformant systems always provide c99.

Some historical implementations have created .o files when -c is not specified and more than one source file is given. Since this area is left unspecified, the application cannot rely on .o files being created, but it also must be prepared for any related .o files that already exist being deleted at the completion of the link edit.

There is the possible implication that if a user supplies versions of the standard functions (before they would be encountered by an implicit -l c or explicit -l m), that those versions would be used in place of the standard versions. There are various reasons this might not be true (functions defined as macros, manipulations for clean name space, and so on), so the existence of files named in the same manner as the standard libraries within the -L directories is explicitly stated to produce unspecified behavior.

All of the functions specified in the System Interfaces volume of POSIX.1‐2017 may be made visible by implementations when the Standard C Library is searched. Conforming applications must explicitly request searching the other standard libraries when functions made visible by those libraries are used.

In the ISO C standard the mapping from physical source characters to the C source character set is implementation-defined. Implementations may strip white-space characters before the terminating <newline> of a (physical) line as part of this mapping and, as a consequence of this, one or more white-space characters (and no other characters) between a <backslash> character and the <newline> character that terminates the line produces implementation-defined results. Portable applications should not use such constructs.

Some c99 compilers not conforming to POSIX.1‐2008 do not support trigraphs by default.