The GNU C Library - Table of Contents
The GNU C Library
- Introduction
- Getting Started
- Standards and Portability
- ANSI C
- POSIX (The Portable Operating System Interface)
- Berkeley Unix
- SVID (The System V Interface Description)
- Using the Library
- Header Files
- Macro Definitions of Functions
- Reserved Names
- Feature Test Macros
- Roadmap to the Manual
- Error Reporting
- Checking for Errors
- Error Codes
- Error Messages
- Memory Allocation
- Dynamic Memory Allocation Concepts
- Dynamic Allocation and C
- Unconstrained Allocation
- Basic Storage Allocation
- Examples of
malloc
- Freeing Memory Allocated with
malloc
- Changing the Size of a Block
- Allocating Cleared Space
- Efficiency Considerations for
malloc
- Allocating Aligned Memory Blocks
- Heap Consistency Checking
- Storage Allocation Hooks
- Statistics for Storage Allocation with
malloc
- Summary of
malloc
-Related Functions- Obstacks
- Creating Obstacks
- Preparing for Using Obstacks
- Allocation in an Obstack
- Freeing Objects in an Obstack
- Obstack Functions and Macros
- Growing Objects
- Extra Fast Growing Objects
- Status of an Obstack
- Alignment of Data in Obstacks
- Obstack Chunks
- Summary of Obstack Functions
- Automatic Storage with Variable Size
alloca
Example- Advantages of
alloca
- Disadvantages of
alloca
- GNU C Variable-Size Arrays
- Relocating Allocator
- Concepts of Relocating Allocation
- Allocating and Freeing Relocatable Blocks
- Memory Usage Warnings
- Character Handling
- Classification of Characters
- Case Conversion
- String and Array Utilities
- Representation of Strings
- String/Array Conventions
- String Length
- Copying and Concatenation
- String/Array Comparison
- Collation Functions
- Search Functions
- Finding Tokens in a String
- Extended Characters
- Introduction to Extended Characters
- Locales and Extended Characters
- Multibyte Characters
- Wide Character Introduction
- Conversion of Extended Strings
- Multibyte Character Length
- Conversion of Extended Characters One by One
- Example of Character-by-Character Conversion
- Multibyte Codes Using Shift Sequences
- Locales and Internationalization
- What Effects a Locale Has
- Choosing a Locale
- Categories of Activities that Locales Affect
- How Programs Set the Locale
- Standard Locales
- Numeric Formatting
- Generic Numeric Formatting Parameters
- Printing the Currency Symbol
- Printing the Sign of an Amount of Money
- Searching and Sorting
- Defining the Comparison Function
- Array Search Function
- Array Sort Function
- Searching and Sorting Example
- Pattern Matching
- Wildcard Matching
- Globbing
- Calling
glob
- Flags for Globbing
- Regular Expression Matching
- POSIX Regular Expression Compilation
- Flags for POSIX Regular Expressions
- Matching a Compiled POSIX Regular Expression
- Subexpressions Match Results
- Complications in Subexpression Matching
- POSIX Regexp Matching Cleanup
- Shell-Style Word Expansion
- The Stages of Word Expansion
- Calling
wordexp
- Flags for Word Expansion
wordexp
Example- Input/Output Overview
- Input/Output Concepts
- Streams and File Descriptors
- File Position
- File Names
- Directories
- File Name Resolution
- File Name Errors
- Portability of File Names
- Input/Output on Streams
- Streams
- Standard Streams
- Opening Streams
- Closing Streams
- Simple Output by Characters or Lines
- Character Input
- Line-Oriented Input
- Unreading
- What Unreading Means
- Using
ungetc
To Do Unreading- Formatted Output
- Formatted Output Basics
- Output Conversion Syntax
- Table of Output Conversions
- Integer Conversions
- Floating-Point Conversions
- Other Output Conversions
- Formatted Output Functions
- Dynamically Allocating Formatted Output
- Variable Arguments Output Functions
- Parsing a Template String
- Example of Parsing a Template String
- Customizing
printf
- Registering New Conversions
- Conversion Specifier Options
- Defining the Output Handler
printf
Extension Example- Formatted Input
- Formatted Input Basics
- Input Conversion Syntax
- Table of Input Conversions
- Numeric Input Conversions
- String Input Conversions
- Dynamically Allocating String Conversions
- Other Input Conversions
- Formatted Input Functions
- Variable Arguments Input Functions
- Block Input/Output
- End-Of-File and Errors
- Text and Binary Streams
- File Positioning
- Portable File-Position Functions
- Stream Buffering
- Buffering Concepts
- Flushing Buffers
- Controlling Which Kind of Buffering
- Temporary Files
- Other Kinds of Streams
- String Streams
- Obstack Streams
- Programming Your Own Custom Streams
- Custom Streams and Cookies
- Custom Stream Hook Functions
- Low-Level Input/Output
- Opening and Closing Files
- Input and Output Primitives
- Setting the File Position of a Descriptor
- Descriptors and Streams
- Precautions for Mixing Streams and Descriptors
- Linked Channels
- Independent Channels
- Cleaning Streams
- Waiting for Input or Output
- Control Operations on Files
- Duplicating Descriptors
- File Descriptor Flags
- File Status Flags
- File Locks
- Interrupt-Driven Input
- File System Interface
- Working Directory
- Accessing Directories
- Format of a Directory Entry
- Opening a Directory Stream
- Reading and Closing a Directory Stream
- Simple Program to List a Directory
- Random Access in a Directory Stream
- Hard Links
- Symbolic Links
- Deleting Files
- Renaming Files
- Creating Directories
- File Attributes
- What the File Attribute Values Mean
- Reading the Attributes of a File
- Testing the Type of a File
- File Owner
- The Mode Bits for Access Permission
- How Your Access to a File is Decided
- Assigning File Permissions
- Testing Permission to Access a File
- File Times
- Making Special Files
- Pipes and FIFOs
- Creating a Pipe
- Pipe to a Subprocess
- FIFO Special Files
- Atomicity of Pipe I/O
- Sockets
- Socket Concepts
- Communication Styles
- Socket Addresses
- Address Formats
- Setting a Socket's Address
- Reading a Socket's Address
- The File Namespace
- File Namespace Concepts
- Details of File Namespace
- Example of File-Namespace Sockets
- The Internet Namespace
- Internet Socket Address Format
- Host Addresses
- Internet Host Addresses
- Host Address Data Type
- Host Address Functions
- Host Names
- Internet Ports
- The Services Database
- Byte Order Conversion
- Protocols Database
- Internet Socket Example
- Other Namespaces
- Opening and Closing Sockets
- Creating a Socket
- Closing a Socket
- Socket Pairs
- Using Sockets with Connections
- Making a Connection
- Listening for Connections
- Accepting Connections
- Who is Connected to Me?
- Transferring Data
- Sending Data
- Receiving Data
- Socket Data Options
- Byte Stream Socket Example
- Byte Stream Connection Server Example
- Out-of-Band Data
- Datagram Socket Operations
- Sending Datagrams
- Receiving Datagrams
- Datagram Socket Example
- Example of Reading Datagrams
- The
inetd
Daemon
inetd
Servers- Configuring
inetd
- Socket Options
- Socket Option Functions
- Socket-Level Options
- Networks Database
- Low-Level Terminal Interface
- Identifying Terminals
- I/O Queues
- Two Styles of Input: Canonical or Not
- Terminal Modes
- Terminal Mode Data Types
- Terminal Mode Functions
- Setting Terminal Modes Properly
- Input Modes
- Output Modes
- Control Modes
- Local Modes
- Line Speed
- Special Characters
- Characters for Input Editing
- BSD Extensions to Editing Characters
- Characters that Cause Signals
- Special Characters for Flow Control
- Other Special Characters
- Noncanonical Input
- Line Control Functions
- Noncanonical Mode Example
- Mathematics
- Domain and Range Errors
- Trigonometric Functions
- Inverse Trigonometric Functions
- Exponentiation and Logarithms
- Hyperbolic Functions
- Pseudo-Random Numbers
- ANSI C Random Number Functions
- BSD Random Number Functions
- Low-Level Arithmetic Functions
- "Not a Number" Values
- Predicates on Floats
- Absolute Value
- Normalization Functions
- Rounding and Remainder Functions
- Integer Division
- Parsing of Numbers
- Parsing of Integers
- Parsing of Floats
- Date and Time
- Processor Time
- Basic CPU Time Inquiry
- Detailed Elapsed CPU Time Inquiry
- Calendar Time
- Simple Calendar Time
- High-Resolution Calendar
- Broken-down Time
- Formatting Date and Time
- Specifying the Time Zone with
TZ
- Functions and Variables for Time Zones
- Time Functions Example
- Setting an Alarm
- Sleeping
- Resource Usage
- Limiting Resource Usage
- Process Priority
- Non-Local Exits
- Introduction to Non-Local Exits
- Details of Non-Local Exits
- Non-Local Exits and Signals
- Signal Handling
- Basic Concepts of Signals
- Some Kinds of Signals
- Concepts of Signal Generation
- How Signals Are Delivered
- Standard Signals
- Program Error Signals
- Termination Signals
- Alarm Signals
- Asynchronous I/O Signals
- Job Control Signals
- Miscellaneous Signals
- Nonstandard Signals
- Signal Messages
- Specifying Signal Actions
- Basic Signal Handling
- Advanced Signal Handling
- Interaction of
signal
andsigaction
sigaction
Function Example- Flags for
sigaction
- Initial Signal Actions
- Defining Signal Handlers
- Signal Handlers That Return
- Handlers That Terminate the Process
- Nonlocal Control Transfer in Handlers
- Signals Arriving While a Handler Runs
- Signals Close Together Merge into One
- Signal Handling and Nonreentrant Functions
- Atomic Data Access and Signal Handling
- Example of Problems with Non-Atomic Access
- Atomic Types
- Atomic Usage Patterns
- Primitives Interrupted by Signals
- Generating Signals
- Signaling Yourself
- Signaling Another Process
- Permission for using
kill
- Using
kill
for Communication- Blocking Signals
- Why Blocking Signals is Useful
- Signal Sets
- Process Signal Mask
- Blocking to Test for Delivery of a Signal
- Blocking Signals for a Handler
- Checking for Pending Signals
- Remembering a Signal to Act On Later
- Waiting for a Signal
- Using
pause
- Problems with
pause
- Using
sigsuspend
- BSD Signal Handling
- POSIX and BSD Signal Facilities
- BSD Function to Establish a Handler
- BSD Functions for Blocking Signals
- Using a Separate Signal Stack
- Process Startup and Termination
- Program Arguments
- Program Argument Syntax Conventions
- Parsing Program Options
- Example of Parsing Arguments with
getopt
- Parsing Long Options
- Example of Parsing Long Options
- Environment Variables
- Environment Access
- Standard Environment Variables
- Program Termination
- Normal Termination
- Exit Status
- Cleanups on Exit
- Aborting a Program
- Termination Internals
- Child Processes
- Running a Command
- Process Creation Concepts
- Process Identification
- Creating a Process
- Executing a File
- Process Completion
- Process Completion Status
- BSD Process Wait Functions
- Process Creation Example
- Job Control
- Concepts of Job Control
- Job Control is Optional
- Controlling Terminal of a Process
- Access to the Controlling Terminal
- Orphaned Process Groups
- Implementing a Job Control Shell
- Data Structures for the Shell
- Initializing the Shell
- Launching Jobs
- Foreground and Background
- Stopped and Terminated Jobs
- Continuing Stopped Jobs
- The Missing Pieces
- Functions for Job Control
- Identifying the Controlling Terminal
- Process Group Functions
- Functions for Controlling Terminal Access
- Users and Groups
- User and Group IDs
- The Persona of a Process
- Why Change the Persona of a Process?
- How an Application Can Change Persona
- Reading the Persona of a Process
- Setting the User ID
- Setting the Group IDs
- Enabling and Disabling Setuid Access
- Setuid Program Example
- Tips for Writing Setuid Programs
- Identifying Who Logged In
- User Database
- The Data Structure that Describes a User
- Looking Up One User
- Scanning the List of All Users
- Writing a User Entry
- Group Database
- The Data Structure for a Group
- Looking Up One Group
- Scanning the List of All Groups
- User and Group Database Example
- System Information
- Host Identification
- Hardware/Software Type Identification
- System Configuration Parameters
- General Capacity Limits
- Overall System Options
- Which Version of POSIX is Supported
- Using
sysconf
- Definition of
sysconf
- Constants for
sysconf
Parameters- Examples of
sysconf
- Minimum Values for General Capacity Limits
- Limits on File System Capacity
- Optional Features in File Support
- Minimum Values for File System Limits
- Using
pathconf
- Utility Program Capacity Limits
- Minimum Values for Utility Limits
- String-Valued Parameters
- C Language Facilities Implemented By the Library
- Explicitly Checking Internal Consistency
- Variadic Functions
- Why Variadic Functions are Used
- How Variadic Functions are Defined and Used
- Syntax for Variable Arguments
- Receiving the Argument Values
- How Many Arguments Were Supplied
- Calling Variadic Functions
- Argument Access Macros
- Example of a Variadic Function
- Old-Style Variadic Functions
- Null Pointer Constant
- Important Data Types
- Data Type Measurements
- Computing the Width of an Integer Data Type
- Range of an Integer Type
- Floating Type Macros
- Floating Point Representation Concepts
- Floating Point Parameters
- IEEE Floating Point
- Structure Field Offset Measurement
- Summary of Library Facilities
- Library Maintenance
- How to Install the GNU C Library
- Reporting Bugs
- Adding New Functions
- Porting the GNU C Library
- The Layout of the `sysdeps' Directory Hierarchy
- Porting the GNU C Library to Unix Systems
- Contributors to the GNU C Library
- 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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)