.\" Copyright (C) 2007 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" 2007-10-23 mtk, Nearly a complete rewrite of the earlier page. .TH intro 3 2023-02-05 "Linux man-pages 6.05.01" .SH NAME intro \- introduction to library functions .SH DESCRIPTION Section 3 of the manual describes all library functions excluding the library functions (system call wrappers) described in Section 2, which implement system calls. .PP Many of the functions described in the section are part of the Standard C Library .RI ( libc ). Some functions are part of other libraries (e.g., the math library, .IR libm , or the real-time library, .IR librt ) in which case the manual page will indicate the linker option needed to link against the required library (e.g., .I \-lm and .IR \-lrt , respectively, for the aforementioned libraries). .PP In some cases, the programmer must define a feature test macro in order to obtain the declaration of a function from the header file specified in the man page SYNOPSIS section. (Where required, these .I feature test macros must be defined before including .I any header files.) In such cases, the required macro is described in the man page. For further information on feature test macros, see .BR feature_test_macros (7). .\" .\" There .\" are various function groups which can be identified by a letter which .\" is appended to the chapter number: .\" .IP (3C) .\" These functions, .\" the functions from chapter 2 and from chapter 3S are .\" contained in the C standard library libc, .\" which will be used by .\" .BR cc (1) .\" by default. .\" .IP (3S) .\" These functions are parts of the .\" .BR stdio (3) .\" library. They are contained in the standard C library libc. .\" .IP (3M) .\" These functions are contained in the arithmetic library libm. They are .\" used by the .\" .BR f77 (1) .\" FORTRAN compiler by default, .\" but not by the .\" .BR cc (1) .\" C compiler, .\" which needs the option \fI\-lm\fP. .\" .IP (3F) .\" These functions are part of the FORTRAN library libF77. There are no .\" special compiler flags needed to use these functions. .\" .IP (3X) .\" Various special libraries. The manual pages documenting their functions .\" specify the library names. .SS Subsections Section 3 of this manual is organized into subsections that reflect the complex structure of the standard C library and its many implementations: .IP \[bu] 3 3const .IP \[bu] 3head .IP \[bu] 3type .PP This difficult history frequently makes it a poor example to follow in design, implementation, and presentation. .PP Ideally, a library for the C language is designed such that each header file presents the interface to a coherent software module. It provides a small number of function declarations and exposes only data types and constants that are required for use of those functions. Together, these are termed an API or .IR "application program interface" . Types and constants to be shared among multiple APIs should be placed in header files that declare no functions. This organization permits a C library module to be documented concisely with one header file per manual page. Such an approach improves the readability and accessibility of library documentation, and thereby the usability of the software. .SH STANDARDS Certain terms and abbreviations are used to indicate UNIX variants and standards to which calls in this section conform. See .BR standards (7). .SH NOTES .SS Authors and copyright conditions Look at the header of the manual page source for the author(s) and copyright conditions. Note that these can be different from page to page! .SH SEE ALSO .BR intro (2), .BR errno (3), .BR capabilities (7), .BR credentials (7), .BR environ (7), .BR feature_test_macros (7), .BR libc (7), .BR math_error (7), .BR path_resolution (7), .BR pthreads (7), .BR signal (7), .BR standards (7), .BR system_data_types (7)