内容简介
1 Introduction
1.1 Getting Started
1.2 Standards and Portability
1.2.1 ISO C
1.2.2 POSIX(The Portable Operating System Interface)
1.2.3 Berkeley Unix
1.2.4 SVID(The System V Interface Description)
1.2.5 XPG(The X/Open Portability Guide)
1.3 Using the Library
1.3.1 Header Files
1.3.2 Macro Definitions of Functions
1.3.3 Reserved Names
1.3.4 Feature Test Macros
1.4 Roadmap to the Manual
2 Error Reporting
2.1 Checking for Errors
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.3.1 Basic Storage Allocation
3.3.2 Examples of malloc
3.3.3 Freeing Memory Allocated with malloc
3.3.4 Changing the Size of a Block
3.3.5 Allocating Cleared Space
3.3.6 Efficiency Considerations for malloc
3.3.7 Allocating Aligned Memory Blocks
3.3.8 Malloc Tunable Parameters
3.3.9 Heap Consistency Checking
3.3.10 Storage Allocation Hooks
3.3.11 Statistics for Storage Allocation with malloc
3.3.12 Summary of malloc-Related Functions
3.4 Allocation Debugging
3.4.1 How to install the tracing functionality
3.4.2 Example program excerpts
3.4.3 Some more or less clever ideas
3.4.4 Interpreting the traces
3.5 Obstacks
3.5.1 Creating Obstacks
3.5.2 Preparing for Using Obstacks
3.5.3 Allocation in an Obstack
3.5.4 Freeing Objects in an Obstack
3.5.5 Obstack Functions and Macros
3.5.6 Growing Objects
3.5.7 Extra Fast Growing Objects
3.5.8 Status of an Obstack
3.5.9 Alignment of Data in Obstacks
3.5.10 Obstack Chunks
3.5.11 Summary of Obstack Functions
3.6 Automatic Storage with Variable Size
3.6.1 alloca Example
3.6.2 Advantages of alloca
3.6.3 Disadvantages of alloca
3.6.4 GNU C Variable-Size Arrays
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 the wide character classes
4.5 Mapping of 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 Finding Tokens in a String
5.9 Encode Binary Data
5.10 Argz and Envz Vectors
5.10.1 Argz Functions
5.10.2 Envz Functions
6 Character Set Handling
6.1 Introduction to Extended Characters
6.2 Overview about Character Handling Functions
6.3 Restartable Multibyte Conversion Functions
6.3.1 Selecting the conversion and its properties
6.3.2 Representing the state of the conversion
6.3.3 Converting Single Characters
6.3.4 Converting Multibyte and Wide Character Strings
6.3.5 A Complete Multibyte Conversion Example
6.4 Non-reentrant Conversion Function
6.4.1 Non-reentrant Conversion of Single Characters
6.4.2 Non-reentrant Conversion of Strings
6.4.3 States in Non-reentrant Functions
6.5 Generic Charset Conversion
6.5.1 Generic Character Set Conversion Interface
6.5.2 A complete iconv example
6.5.3 Some Details about other iconv Implementations
6.5.4 The iconv Implementation in the GNU C library
6.5.4.1 Format of'gconv-modules'files
6.5.4.2 Finding the conversion path in iconv
6.5.4.3 iconv module data structures
6.5.4.4 iconv module interfaces
7 Locales and Internationalization
7.1 What Effects a Locale Has
7.2 Choosing a Locale
7.3 Categories of Activities that Locales Affect
7.4 How Programs Set the Locale
7.5 Standard Locales
7.6 Accessing Locale Information
7.6.1 localeconv:It is portable but
7.6.1.1 Generic Numeric Formatting Parameters
7.6.1.2 Printing the Currency Symbol
7.6.1.3 Printing the Sign of a Monetary Amount
7.6.2 Pinpoint Access to Locale Data
7.7 A dedicated function to format numbers
8 Message Translation
8.1 X/Open Message Catalog Handling
8.1.1 The catgets function family
8.1.2 Format of the message catalog files
8.1.3 Generate Message Catalogs files
8.1.4 How to use the catgets interface
8.1.4.1 Not using symbolic names
8.1.4.2 Using symbolic names
8.1.4.3 How does to this allow to develop
8.2 The Uniforum approach to Message Translation
8.2.1 The gettext family of functions
8.2.1.1 What has to be done to translate a message?
8.2.1.2 How to determine which catalog to be used
8.2.1.3 User influence on gettext
8.2.2 Programs to handle message catalogs for gettext
9 Searching and Sorting
9.1 Defining 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.2.1 Calling glob
10.2.2 Flags for Globbing
10.2.3 More Flags for Globbing
10.3 Regular Expression Matching
10.3.1 POSIX Regular Expression Compilation
10.3.2 Flags for POSIX Regular Expressions
10.3.3 Matching a Compiled POSIX Regular Expression
10.3.4 Match Results with Subexpressions
10.3.5 Complications in Subexpression Matching
10.3.6 POSIX Regexp Matching Cleanup
10.4 Shell-Style Word Expansion
10.4.1 The Stages of Word Expansion
10.4.2 Calling wordexp
10.4.3 Flags for Word Expansion
10.4.4 wordexp Example
10.4.5 Details of Tilde Expansion
10.4.6 Details of Variable Substitution
11 Input/Output Overview
11.1 Input/Output Concepts
11.1.1 Streams and File Descriptors
11.1.2 File Position
11.2 File Names
11.2.1 Directories
11.2.2 File Name Resolution
11.2.3 File Name Errors
11.2.4 Portability of 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 Unreading
12.8.1 What Unreading Means
12.8.2 Using ungetc To Do Unreading
12.9 Block Input/Output
12.10 Formatted Output
12.10.1 Formatted Output Basics
12.10.2 Output Conversion Syntax
12.10.3 Table of Output Conversions
12.10.4 Integer Conversions
12.10.5 Floating-Point Conversions
12.10.6 Other Output Conversions
12.10.7 Formatted Output Functions
12.10.8 Dynamically Allocating Formatted Output
12.10.9 Variable Arguments Output Functions
12.10.10 Parsing a Template String
12.10.11 Example of Parsing a Template String
12.11 Customizing printf
12.11.1 Registering New Conversions
12.11.2 Conversion Specifier Options
12.11.3 Defining the Output Handler
12.11.4 printf Extension Example
12.11.5 Predefined printf Handlers
12.12 Formatted Input
12.12.1 Formatted Input Basics
12.12.2 Input Conversion Syntax
12.12.3 Table of Input Conversions
12.12.4 Numeric Input Conversions
12.12.5 String Input Conversions
12.12.6 Dynamically Allocating String Conversions
12.12.7 Other Input Conversions
12.12.8 Formatted Input Functions
12.12.9 Variable Arguments Input Functions
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.17.1 Buffering Concepts
12.17.2 Flushing Buffers
12.1 7.3 Controlling Which Kind of Buffering
12.18 Other Kinds of Streams
12.18.1 String Streams
12.18.2 Obstack Streams
12.18.3 Programming Your Own Custom Streams
12.18.3.1 Custom Streams and Cookies
12.18.3.2 Custom Stream Hook Functions
12.19 Formatted Messages
12.19.1 Printing Formatted Messages
12.19.2 Adding Severity Classes
12.19.3 How to use fmtmsg and addseverity
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 Descriptor
13.4 Descriptors and Streams
13.5 Dangers of Mixing Streams and Descriptors
13.5.1 Linked Chanuels
13.5.2 Independent Channels
13.5.3 Cleaning Streams
13.6 Fast Scatter-Gather I/O
13.7 Memory-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.10.1 Asynchronous Read and Write Operations
13.10.2 Getting the Status of AIO Operations
13.10.3 Getting into a Consistent State
13.10.4 Cancellation of AIO Operations
13.10.5 How to optimize the AIO implementation
13.11 Control Operations on Files
13.12 Duplicating Descriptors
13.13 File Descriptor Flags
13.14 File Status Flags
13.14.1 File Access Modes
13.14.2 Open-time Flags
13.14.3 I/O Operating Modes
13.14.4 Getting and Setting File Status Flags
13.15 File Locks
13.16 Interrupt-Driven Input
13.17 Generic I/O Control operations
14 File System Interface
14.1 Working Directory
14.2 Accessing Directories
14.2.1 Format of a Directory Entry
14.2.2 Opening a Directory Stream
14.2.3 Reading and Closing a Directory Stream
14.2.4 Simple Program to List a Directory
14.2.5 Random Access in a Directory Stream
14.2.6 Scanning the Content of a Directory
14.2.7 Simple Program to List a Directory,Mark II
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 File Attributes
14.9.1 The meaning of the File Attributes
14.9.2 Reading the Attributes of a File
14.9.3 Testing the Type of a File
14.9.4 File Owner
14.9.5 The Mode Bits for Access Permission
14.9.6 How Your Access to a File is Decided
14.9.7 Assigning File Permissions
14.9.8 Testing Permission to Access a File
14.9.9 File Times
14.9.10 File Size
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 Atomicity of Pipe I/O
16 Sockets
16.1 Socket Concepts
16.2 Communication Styles
16.3 Socket Addresses
16.3.1 Address Formats
16.3.2 Setting the Address of a Socket
16.3.3 Reading the Address of a Socket
16.4 Interface Naming
16.5 The Local Namespace
16.5.1 Local Namespace Concepts
16.5.2 Details of Local Namespace
16.5.3 Example of Local-Namespace Sockets
16.6 The Internet Namespace
16.6.1 Internet Socket Address Formats
16.6.2 Host Addresses
16.6.2.1 Internet Host Addresses
16.6.2.2 Host Address Data Type
16.6.2.3 Host Address Functions
16.6.2.4 Host Names
16.6.3 Internet Ports
16.6.4 The Services Database
16.6.5 Byte Order Conversion
16.6.6 Protocols Database
16.6.7 Internet Socket Example
16.7 Other Namespaces
16.8 Opening and Closing Sockets
16.8.1 Creating a Socket
16.8.2 Closing a Socket
16.8.3 Socket Pairs
16.9 Using Sockets with Connections
16.9.1 Making a Connection
16.9.2 Listening for Connections
16.9.3 Accepting Connections
16.9.4 Who is Connected to Me?
16.9.5 Transferring Data
16.9.5.1 Sending Data
16.9.5.2 Receiving Data
16.9.5.3 Socket Data Options
16.9.6 Byte Stream Socket Example
16.9.7 Byte Stream Connection Server Example
16.9.8 Out-of-Band Data
16.10 Datagram Socket Operations
16.10.1 Sending Datagrams
16.10.2 Receiving Datagrams
16.10.3 Datagram Socket Example
16.10.4 Example of Reading Datagrams
16.11 The inetd Daemon
16.11.1 inetd Servers
16.11.2 Configuring inetd
16.12 Socket Options
16.12.1 Socket Option Functions
16.12.2 Socket-Level 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.4.1 Terminal Mode Data Types
17.4.2 Terminal Mode Functions
17.4.3 Setting Terminal Modes Properly
17.4.4 Input Modes
17.4.5 Output Modes
17.4.6 Control Modes
17.4.7 Local Modes
17.4.8 Line Speed
17.4.9 Special Characters
17.4.9.1 Characters for Input Editing
17.4.9.2 Characters that Cause Signals
17.4.9.3 Special Characters for Flow Control
17.4.9.4 Other Special Characters
17.4.10 Noncanonical Input
17.5 Line Control Functions
17.6 Noncanonical Mode Example
17.7 Pseudo-Terminals
17.7.1 Allocating Pseudo-Terminals
17.7.2 Opening a Pseudo-Terminal Pair
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.7.1 ISO C Random Number Functions
18.7.2 BSD Random Number Functions
18.7.3 SVID Random Number Function
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.3.1 FP Exceptions
19.3.2 Infinity and NaN
19.3.3 Examining the FPU status word
19.3.4 Error Reporting by Mathematical Functions
19.4 Rounding Modes
19.5 Floating-Point Control Functions
19.6 Arithmetic Functions
19.6.1 Absolute Value
19.6.2 Normalization Functions
19.6.3 Rounding Functions
19.6.4 Remainder Functions
19.6.5 Setting and modifying single bits of FP values
19.6.6 Floating-Point Comparison Functions
19.6.7 Miscellaneous FP arithmetic functions
19.7 Complex Numbers
19.8 Projections,Conjugates,and Decomposing of Complex
19.9 Integer Division
19.10 Parsing of Numbers
19.10.1 Parsing of Integers
19.10.2 Parsing of Floats
19.11 Old-fashioned System V number-to-string functions
20 Date and Time
20.1 Processor Time
20.1.1 Basic CPU Time Inquiry
20.1.2 Detailed Elapsed CPU Time Inquiry
20.2 Calendar Time
20.2.1 Simple Calendar Time
20.2.2 High-Resolution Calendar
20.2.3 Broken-down Time
20.2.4 Formatting Date and Time
20.2.5 Convert textual time and date information back
20.2.5.1 Interpret string according to given format
20.2.5.2 A user-friendlier way to parse times and dates
20.2.6 Specifying the Time Zone with TZ
20.2.7 Functions and Variables for Time Zones
20.2.8 Time Functions Example
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 Details of Non-Local Exits
21.3 Non-Local Exits and Signals
22 Signal Handling
22.1 Basic Concepts of Signals
22.1.1 Some Kinds of Signals
22.1.2 Concepts of Signal Generation
22.1.3 How Signals Are Delivered
22.2 Standard Signals
22.2.1 Program Error Signals
22.2.2 Termination Signals
22.2.3 Alarm Signals
22.2.4 Asynchronous I/O Signals
22.2.5 Job Control Signals
22.2.6 Operation Error Signals
22.2.7 Miscellaneous Signals
22.2.8 Signal Messages
22.3 Specifying Signal Actions
22.3.1 Basic Signal Handling
22.3.2 Advanced Signal Handling
22.3.3 Interaction of signal and sigaction
22.3.4 sigaction Function Example
22.3.5 Flags for sigaction
22.3.6 Initial Signal Actions
22.4 Defining Signal Handlers
22.4.1 Signal Handlers that Return
22.4.2 Handlers That Terminate the Process
22.4.3 Nonlocal Control Transfer in Handlers
22.4.4 Signals Arriving While a Handler Runs
22.4.5 Signals Close Together Merge into One
22.4.6 Signal Handling and Nonreentrant Functions
22.4.7 Atomic Data Access and Signal Handling
22.4.7.1 Problems with Non-Atomic Access
22.4.7.2 Atomic Types
22.4.7.3 Atomic Usage Patterns
22.5 Primitives Interrupted by Signals
22.6 Generating Signals
22.6.1 Signaling Yourself
22.6.2 Signaling Another Process
22.6.3 Permission for using kill
22.6.4 Using kill for Communication
22.7 Blocking Signals
22.7.1 Why Blocking Signals is Useful
22.7.2 Signal Sets
22.7.3 Process Signal Mask
22.7.4 Blocking to Test for Delivery of a Signal
22.7.5 Blocking Signals for a Handler
22.7.6 Checking for Pending Signals
22.7.7 Remembering a Signal to Act On Later
22.8 Waiting for a Signal
22.8.1 Using pause
22.8.2 Problems with pause
22.8.3 Using sigsuspend
22.9 Using a Separate Signal Stack
22.10 BSD Signal Handling
22.10.1 BSD Function to Establish a Handler
22.10.2 BSD Functions for Blocking Signals
23 Process Startup and Termination
23.1 Program Arguments
23.1.1 Program Argument Syntax Conventions
23.1.2 Parsing Program Arguments
23.2 Parsing program options using getopt
23.2.1 Using the getopt function
23.2.2 Example of Parsing Arguments with getopt
23.2.3 Parsing Long Options with getopt_long
23.2.4 Example of Parsing Long Options with getopt_long
23.3 Parsing Program Options with Argp
23.3.1 The argp_parse Function
23.3.2 Argp Global Variables
23.3.3 Specifying Argp Parsers
23.3.4 Specifying Options in an Argp Parser
23.3.4.1 Flags for Argp Options
23.3.5 Argp Parser Functions
23.3.5.1 Special Keys for Argp Parser Functions
23.3.5.2 Functions For Use in Argp Parsers
23.3.5.3 Argp Parsing State
23.3.6 Combining Multiple Argp Parsers
23.3.7 Flags for argp_parse
23.3.8 Customizing Argp Help Output
23.3.8.1 Special Keys for Argp Help Filter Functions
23.3.9 The argp_help Function
23.3.10 Flags for the argp_help Function
23.3.11 Argp Examples
23.3.11.1 A Minimal Program Using Argp
23.3.11.2 A Program Using Argp with Only Default Options
23.3.11.3 A Program Using Argp with User Options
23.3.11.4 A Program Using Multiple Combined Argp Parsers
23.3.12 Argp User Customization
23.3.12.5 Parsing of Suboptions
23.3.13 Parsing of Suboptions Example
23.4 Environment Variables
23.4.1 Environment Access
23.4.2 Standard Environment Variables
23.5 Program Termination
23.5.1 Normal Termination
23.5.2 Exit Status
23.5.3 Cleanups on Exit
23.5.4 Aborting a Program
23.5.5 Termination Internals
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 Status
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 Terminal of a Process
25.4 Access to the Controlling Terminal
25.5 Orphaned Process Groups
25.6 Implementing a Job Control Shell
25.6.1 Data Structures for the Shell
25.6.2 Initializing the Shell
25.6.3 Launching Jobs
25.6.4 Foreground and Background
25.6.5 Stopped and Terminated Jobs
25.6.6 Continuing Stopped Jobs
25.6.7 The Missing Pieces
25.7 Functions for Job Control
25.7.1 Identifying the Controlling Terminal
25.7.2 Process Group Functions
25.7.3 Functions for Controlling Terminal Access
26 System Databases and Name Service Switch
26.1 NSS Basics
26.2 The NSS Configuration File
26.2.1 Services in the NSS configuration File
26.2.2 Actions in the NSS configuration
26.2.3 Notes on the NSS Configuration File
26.3 NSS Module Internals
26.3.1 The Naming Scheme of the NSS Modules
26.3.2 The Interface of the Function in NSS Modules
26.4 Extending NSS
26.4.1 Adding another Service to NSS
26.4.2 Internals of the NSS Module Functions
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.12.1 Manipulating the User Accounting Database
27.12.2 XPG User Accounting Database Functions
27.12.3 Logging In and Out
27.13 User Database
27.13.1 The Data Structure that Describes a User
27.13.2 Looking Up One User
27.13.3 Scanning the List of All Users
27.13.4 Writing a User Entry
27.14 Group Database
27.14.1 The Data Structure for a Group
27.14.2 Looking Up One Group
27.14.3 Scanning the List of All Groups
27.15 User and Group Database Example
27.16 Netgroup Database
27.16.1 Netgroup Data
27.16.2 Looking up one Netgroup
27.16.3 Testing for Netgroup Membership
28 System Information
28.1 Host Identification
28.2 Hardware/Software Type Identification
28.3 Which filesystems are mounted and/or available?
29 System Configuration Parameters
29.1 General Capacity Limits
29.2 Overall System Options
29.3 Which Version of POSIX is Supported
29.4 Using sysconf
29.4.1 Definition of sysconf
29.4.2 Constants for sysconf Parameters
29.4.3 Examples of 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 Functions
Appendix A C Language Facilities in the Library
A.1 Explicitly Checking Internal Consistency
A.2 Variadic Functions
A.2.1 Why Variadic Functions are Used
A.2.2 How Variadic Functions are Defined and Used
A.2.2.1 Syntax for Variable Arguments
A.2.2.2 Receiving the Argument Values
A.2.2.3 How Many Arguments Were Supplied
A.2.2.4 Calling Variadic Functions
A.2.2.5 Argument Access Macros
A.2.3 Example of a Variadic Function
A.2.3.1 Old-Style Variadic Functions
A.3 Null Pointer Constant
A.4 Important Data Types
A.5 Data Type Measurements
A.5.1 Computing the Width of an Integer Data Type
A.5.2 Range of an Integer Type
A.5.3 Floating Type Macros
A.5.3.1 Floating Point Representation Concepts
A.5.3.2 Floating Point Parameters
A.5.3.3 IEEE Floating Point
A.5.4 Structure Field Offset Measurement
App endix B Summary of Library Facilities
Appendix C Installing the GNU C Library
C.1 Configuring and compiling GNU Libc
C.2 Installing the C Library
C.3 Recommended Tools for Compilation
C.4 Supported Configurations
C.5 Specific advice for Linux systems
C.6 Reporting Bugs
Appendix D Library Maintenance
D.1 Adding New Functions
D.2 Porting the GNU C Library
D.2.1 Layout of the'sysdeps'Directory Hierarchy
D.2.2 Porting the GNU C Library to Unix Systems
Appendix E Contributors to the GNU C Library
Appendix F GNU LIBRARY GENERAL PUBLIC LICENSE
Preamble
TERMS AND CONDITIONS FOR COPYING,DISTRIBUTION AND MODIFICATION
How to Apply These Terms to Your New Libraries
Concept Index
Type Index
Function and Macro Index
Variable and Constant Macro Index
Program and File Index