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 and sigaction
      • 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
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。