1. Introduction
1.1 Getting Started
1.2 Standards and Portability
1.3 Using the Library
1.4 Roadmap to the Manual
2 Error Reporting
2.1 Checking For Error
2.2 Error Codes
2.3 Error Messages
3 Memory Allocation
3.1 Dynamic Memory Allocation Concepts
3.2 Dynamic Allocation and C
3.3 Unconstrained Allocation
3.4 Allocation Debugging
3.5 Obstacks
3.6 Automatic Storage with Varible Size
4 Character Handling
4.1 Classification of Characters
4.2 Case Conversion
4.3 Character Class determination for wide characters
4.4 notes on using wide characters
5 string and array utilities
5.1 representation of strings
5.2 string and array conventions
5.3 string length
5.4 copying and concatenation
5.5 string /array comparison
5.6 collation functions
5.7 search functions
5.8 encode binary data
5.9 finding tokens in a string
5.10 argz and enzy vectors
6 character set handling
6.1 introduction to extended characters
6.2 overview about character handling funcations
6.3 restartable multibyte conversion functions
6.4 non-reentrantconversion function
6.5 generic charset conversion
7 locales and internationalization
7.1 what effects a locale has
7.2 choosing a locale
7.3 categories of activites that locales affect
7.4 how programs set the locale
7.5 standard locales
7.6 accessing locale information
7.7 a dedicated function to format numbers
8 message translation
8.1 x/open message catalog handling
8.2 the uniforum approach to message translation
9 searching and sorting
9.1 definig the comparison function
9.2 array search function
9.3 array sort function
9.4 searching and sorting example
9.5 the hsearch function
9.6 the tsearch function
10 pattern matching
10.1 wildcard matching
10.2 globbing
10.3 regular expression matching
10.4 shell-style word expansion
11 input/output overview
11.1 input/output concepts
11.2 file names
12 input/output on streams
12.1 streams
12.2 standard streams
12.3 opening streams
12.4 closing streams
12.5 simple output by characters or lines
12.6 character input
12.7 line-oriented input
12.8 unleading
12.9 block input/output
12.10 formatted output
12.11 customizing printf
12.12 formatted input
12.13 end-of-file and errors
12.14 text and binary streams
12.15 file positioning
12.16 portable file-position functions
12.17 stream buffering
12.18 other kinds of streams
12.19 formatted messages
13 low-level input/output
13.1 opening and closing files
13.2 input and output primitives
13.3 setting the file position of a descript
13.4 descriptors and streams
13.5 dangers of mixing streams and descriptors
13.6 fast scatter-gather I/O
13.7 Momory-mapped I/O
13.8 Waiting for Input or Output
13.9 synchronizing I/O operations
13.10 perform I/O operations in parallel
13.11 control operations on files
13.12 file Descriptor flags
13.13 duplication descriptors
13.14 file status flags
13.15 file locks
13.16 interrupt-driven input
13.17 generic I/O control operators
14 file system interface
14.1 working directory
14.2 accessing directories
14.3 working with directory trees
14.4 hard links
14.5 symbolic links
14.6 deleting files
14.7 renaming files
14.8 creating directories
14.9 files attributes
14.10 making special files
14.11 temporary files
15 pipes and fifos
15.1 creating a pipe
15.2 pipe to a subprocess
15.3 fifo special files
15.4 automicity of pipe I/O
16 sockets
16.1 socket concepts
16.2 communication styles
16.3 socket addresses
16.4 interface naming
16.5 the local namespace
16.6 the internet namespace
16.7 other namespaces
16.8 opening and closing sockets
16.9 using sockets with connections
16.10 datagram socket operations
16.11 the inetd daemon
16.12 socket options
16.13 networks database
17 low-level terminal interface
17.1 identifying terminals
17.2 I/O queues
17.3 two styles of input:canonical or not
17.4 terminal modes
17.5 line control functions
17.6 noncanonical mode example
17.7 pseudo-tdrminals
18 mathematics
18.1 predefined mathematical constants
18.2 trigonometric functions
18.3 inverse trigonometric functions
18.4 exponentiation and logarithms
18.5 hyperbolic functions
18.6 special functions
18.7 pseudo-random numbers
18.8 is fast code or small code preferred
19 arithmetic functions
19.1 floating point numbers
19.2 floating-point number classification functions
19.3 errors in floating-point calculations
19.4 rounding modes
19.5 floating-point control functions
19.6 arithmetic functions
19.7 complex unmbers
19.8 projections,conjugates,and decompoing of complex numbers
19.9 integer division
19.10 parsion of numbers
19.11 old-fashioned system v number-to-string functions
20 date and time
20.1 processor time
20.2 calendar time
20.3 precision time
20.4 setting an alarm
20.5 sleeping
20.6 resource usage
20.7 limiting resource usage
20.8 process priority
21 Non-Local Exits
21.1 Introduction to Non-Local Exits
21.2 Datails of Non-Local Exits
21.3 Non-Local Exits and Signals
22 Signal Handling
22.1 Basic Concepts of Signals
22.2 Standard Signals
22.3 Special Signal Actions
22.4 Defining Signal Handlers
22.5 Primitives Interrupted by Signals
22.6 Generating Signals
22.7 Blocking Signals
22.8 Waiting for a Signal
22.9 Using a Separate Signal Stack
22.10 BSD Signal Handling
23 Process Startup and Termination
23.1 Program Arguments
23.2 Parsing program options using getopt
23.3 Parsing Program Options with Argp
23.4 Environment Varisbles
23.5 Program Termination
24 processes
24.1 running a command
24.2 process creation concepts
24.3 process identification
24.4 creating a process
24.5 executing a file
24.6 process completion
24.7 process completion
24.8 bsd process wait functions
24.9 process creation example
25 job control
25.1 concepts of job control
25.2 job control is optional
25.3 controlling termianl of a process
25.4 orphaned process groups
25.5 access to the controlling terminal
25.6 implementing a job control shell
25.7 funcitons for job control
26 system databases and name service switch
26.1 nss basics
26.2 the nss configuration file
26.3 nss nodule internals
26.4 extending nss
27 users and groups
27.1 user and group ids
27.2 the persona of a process
27.3 why change the persona of a process
27.4 how an application can change persona
27.5 reading the persona of a process
27.6 setting the user id
27.7 setting the group ids
27.8 enabling and disabling setuid access
27.9 setuid program example
27.10 tips for writing setuid programs
27.11 identifying who logged in
27.12 the user accounting database
27.13 user database
27.14 group database
27.15 user and group database example
27.16 netgroup database
28 system information
28.1 host indentification
28.2 hardware/software type identification
28.3 which filesystems are mounted and /or available
29 system configuration paremeters
29.1 general capactiy limits
29.2 overall system options
29.3 which version of posix is supported
29.4 using sysconf
29.5 minimum values for general capacity limits
29.6 limits on file system capacity
29.7 optional features in file support
29.8 minimum values for file system limits
29.9 using pathconf
29.10 utility program capacity limits
29.11 minimum values for utility limits
29.12 string-valued parameters
30 des encryption and password handling
30.1 legal problems
30.2 reading passwords
30.3 encrypting passwords
30.4 des encryption
31 posix threads
31.1 basic thread operations
31.2 thread attributes
31.3 cancellation
31.4 cleanup handlers
31.5 mutexes
31.6 condition variables
31.7 posix semaphores
31.8 thread-specific data
31.9 threads and signal handling
31.10 miscellaneous thread funcitons
Appendix A C Language Facilities In the Library
Appendix B Summary of Library facilities
Appendix C Installing the GNU C Library
Appendix D Library Maintenance
Appendix E Contributors ot the GNU C Library
Appendix F GNU LIBRARY GENERAL PUBLICE LICENSE