1.4 Roadmap to the Manual
Here is an overview of the contents of the remaining chapters of
- Error Reporting, describes how errors detected by the library
- 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
- 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
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
- 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
- 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
- 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
- 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
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
- 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
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.