Roadmap to the Manual (The GNU C Library)

### 1.4 Roadmap to the Manual ¶

Here is an overview of the contents of the remaining chapters of this manual.

- Error Reporting, describes how errors detected by the library are reported.
- Virtual Memory Allocation And Paging, describes the GNU C Library’s facilities for managing and using virtual and real memory, including dynamic allocation of virtual memory. If you do not know in advance how much memory your program needs, you can allocate it dynamically instead, and manipulate it via pointers.
- Character Handling, contains information about character classification functions (such as `isspace`) and functions for performing case conversion.
- String and Array Utilities, has descriptions of functions for manipulating strings (null-terminated character arrays) and general byte arrays, including operations such as copying and comparison.
- Character Set Handling, contains information about manipulating characters and strings using character sets larger than will fit in the usual `char` data type.
- Locales and Internationalization, describes how selecting a particular country or language affects the behavior of the library. For example, the locale affects collation sequences for strings and how monetary values are formatted.
- Searching and Sorting, contains information about functions for searching and sorting arrays. You can use these functions on any kind of array by providing an appropriate comparison function.
- Pattern Matching, presents functions for matching regular expressions and shell file name patterns, and for expanding words as the shell does.
- Input/Output Overview, gives an overall look at the input and output facilities in the library, and contains information about basic concepts such as file names.
- Input/Output on Streams, describes I/O operations involving streams (or `FILE *` objects). These are the normal C library functions from `stdio.h`.
- Low-Level Input/Output, contains information about I/O operations on file descriptors. File descriptors are a lower-level mechanism specific to the Unix family of operating systems.
- File System Interface, has descriptions of operations on entire files, such as functions for deleting and renaming them and for creating new directories. This chapter also contains information about how you can access the attributes of a file, such as its owner and file protection modes.
- Pipes and FIFOs, contains information about simple interprocess communication mechanisms. Pipes allow communication between two related processes (such as between a parent and child), while FIFOs allow communication between processes sharing a common file system on the same machine.
- Sockets, describes a more complicated interprocess communication mechanism that allows processes running on different machines to communicate over a network. This chapter also contains information about Internet host addressing and how to use the system network databases.
- Low-Level Terminal Interface, describes how you can change the attributes of a terminal device. If you want to disable echo of characters typed by the user, for example, read this chapter.
- Mathematics, contains information about the math library functions. These include things like random-number generators and remainder functions on integers as well as the usual trigonometric and exponential functions on floating-point numbers.
- Low-Level Arithmetic Functions, describes functions for simple arithmetic, analysis of floating-point values, and reading numbers from strings.
- Date and Time, describes functions for measuring both calendar time and CPU time, as well as functions for setting alarms and timers.
- Non-Local Exits, contains descriptions of the `setjmp` and `longjmp` functions. These functions provide a facility for `goto`-like jumps which can jump from one function to another.
- Signal Handling, tells you all about signals—what they are, how to establish a handler that is called when a particular kind of signal is delivered, and how to prevent signals from arriving during critical sections of your program.
- The Basic Program/System Interface, tells how your programs can access their command-line arguments and environment variables.
- Processes, contains information about how to start new processes and run programs.
- Job Control, describes functions for manipulating process groups and the controlling terminal. This material is probably only of interest if you are writing a shell or other program which handles job control specially.
- System Databases and Name Service Switch, describes the services which are available for looking up names in the system databases, how to determine which service is used for which database, and how these services are implemented so that contributors can design their own services.
- User Database, and Group Database, tell you how to access the system user and group databases.
- System Management, describes functions for controlling and getting information about the hardware and software configuration your program is executing under.
- System Configuration Parameters, tells you how you can get information about various operating system limits. Most of these parameters are provided for compatibility with POSIX.
- C Language Facilities in the Library, contains information about library support for standard parts of the C language, including things like the `sizeof` operator and the symbolic constant `NULL`, how to write functions accepting variable numbers of arguments, and constants describing the ranges and other properties of the numerical types. There is also a simple debugging mechanism which allows you to put assertions in your code, and have diagnostic messages printed if the tests fail.
- Summary of Library Facilities, gives a summary of all the functions, variables, and macros in the library, with complete data types and function prototypes, and says what standard or system each is derived from.
- Installing the GNU C Library, explains how to build and install the GNU C Library on your system, and how to report any bugs you might find.
- Library Maintenance, explains how to add new functions or port the library to a new system.

If you already know the name of the facility you are interested in, you can look it up in Summary of Library Facilities. This gives you a summary of its syntax and a pointer to where you can find a more detailed description. This appendix is particularly useful if you just want to verify the order and type of arguments to a function, for example. It also tells you what standard or system each function, variable, or macro is derived from.