| Introduction | Purpose of the GNU C Library. |
| Error Reporting | How the GNU Library functions report error conditions. |
| Memory Allocation | Your program can allocate memory dynamically and manipulate it via pointers. |
| Character Handling | Character testing and conversion functions. |
| String and Array Utilities | Utilities for copying and comparing strings and arrays. |
| Extended Characters | Support for extended character sets. |
| Locales | The country and language can affect the behavior of library functions. |
| Searching and Sorting | General searching and sorting functions. |
| Pattern Matching | Matching wildcards and regular expressions, and shell-style ``word expansion''. |
| I/O Overview | Introduction to the I/O facilities. |
| Streams | High-level, portable I/O facilities. |
| Low-Level I/O | Low-level, less portable I/O. |
| File System Interface | Functions for manipulating files. |
| Pipes and FIFOs | A simple interprocess communication mechanism. |
| Sockets | A more complicated interprocess communication mechanism, with support for networking. |
| Low-Level Terminal Interface | How to change the characteristics of a terminal device. |
| Mathematics | Math functions (transcendental functions, random numbers, absolute value, etc.). |
| Arithmetic | Low-level arithmetic functions. |
| Date and Time | Functions for getting the date and time, and for conversion between formats. |
| Non-Local Exits | The setjmp and longjmp facilities. |
| Signal Handling | All about signals; how to send them, block them, and handle them. |
| Process Startup | Writing the beginning and end of your program. |
| Processes | How to create processes and run other programs. |
| Job Control | All about process groups and sessions. |
| Users and Groups | How users are identified and classified. |
| System Information | Getting information about the hardware and software configuration of the machine a program runs on. |
| System Configuration | Parameters describing operating system limits. |
Appendices | |
|---|---|
| Language Features | C language features provided by the library. |
| Library Summary | A summary showing the syntax, header file, and derivation of each library feature. |
| Maintenance | How to install and maintain the GNU C Library. |
| Copying | The GNU Library General Public License says how you can copy and share the GNU C Library. |
Indices | |
| Concept Index | Index of concepts and names. |
| Type Index | Index of types and type qualifiers. |
| Function Index | Index of functions and function-like macros. |
| Variable Index | Index of variables and variable-like macros. |
| File Index | Index of programs and files. |
--- The Detailed Node Listing --- | |
Introduction | |
| Getting Started | Getting Started |
| Standards and Portability | Standards and Portability |
| Using the Library | Using the Library |
| Roadmap to the Manual | Roadmap to the Manual |
Standards and Portability | |
| ANSI C | The American National Standard for the C programming language. |
| POSIX | The IEEE 1003 standards for operating systems. |
| Berkeley Unix | BSD and SunOS. |
| SVID | The System V Interface Description. |
Using the Library | |
| Header Files | How to use the header files in your programs. |
| Macro Definitions | Some functions in the library may really be implemented as macros. |
| Reserved Names | The C standard reserves some names for the library, and some for users. |
| Feature Test Macros | How to control what names are defined. |
Error Reporting | |
| Checking for Errors | How errors are reported by library functions. |
| Error Codes | What all the error codes are. |
| Error Messages | Mapping error codes onto error messages. |
Memory Allocation | |
| Memory Concepts | An introduction to concepts and terminology. |
| Dynamic Allocation and C | How to get different kinds of allocation in C. |
| Unconstrained Allocation | The malloc facility allows fully generaldynamic allocation. |
| Obstacks | Obstacks are less general than malloc but more efficient and convenient. |
| Variable Size Automatic | Allocation of variable-sized blocks of automatic storage that are freed when the calling function returns. |
| Relocating Allocator | Waste less memory, if you can tolerate automatic relocation of the blocks you get. |
| Memory Warnings | Getting warnings when memory is nearly full. |
Unconstrained Allocation | |
| Basic Allocation | Simple use of malloc . |
| Malloc Examples | Examples of malloc . xmalloc . |
| Freeing after Malloc | Use free to free a block yougot with malloc . |
| Changing Block Size | Use realloc to make a blockbigger or smaller. |
| Allocating Cleared Space | Use calloc to allocate ablock and clear it. |
| Efficiency and Malloc | Efficiency considerations in use of these functions. |
| Aligned Memory Blocks | Allocating specially aligned memory:memalign and valloc . |
| Heap Consistency Checking | Automatic checking for errors. |
| Hooks for Malloc | You can use these hooks for debugging programs that use malloc . |
| Statistics of Malloc | Getting information about how much memory your program is using. |
| Summary of Malloc | Summary of malloc and related functions. |
Obstacks | |
| Creating Obstacks | How to declare an obstack in your program. |
| Preparing for Obstacks | Preparations needed before you can use obstacks. |
| Allocation in an Obstack | Allocating objects in an obstack. |
| Freeing Obstack Objects | Freeing objects in an obstack. |
| Obstack Functions | The obstack functions are both functions and macros. |
| Growing Objects | Making an object bigger by stages. |
| Extra Fast Growing | Extra-high-efficiency (though more complicated) growing objects. |
| Status of an Obstack | Inquiries about the status of an obstack. |
| Obstacks Data Alignment | Controlling alignment of objects in obstacks. |
| Obstack Chunks | How obstacks obtain and release chunks. Efficiency considerations. |
| Summary of Obstacks | |
Automatic Storage with Variable Size | |
| Alloca Example | Example of using alloca . |
| Advantages of Alloca | Reasons to use alloca . |
| Disadvantages of Alloca | Reasons to avoid alloca . |
| GNU C Variable-Size Arrays | Only in GNU C, here is an alternative method of allocating dynamically and freeing automatically. Relocating Allocator |
| Relocator Concepts | How to understand relocating allocation. |
| Using Relocator | Functions for relocating allocation. |
Character Handling | |
| Classification of Characters | Testing whether characters are letters, digits, punctuation, etc. |
| Case Conversion | Case mapping, and the like. |
String and Array Utilities | |
| Representation of Strings | Introduction to basic concepts. |
| String/Array Conventions | Whether to use a string function or an arbitrary array function. |
| String Length | Determining the length of a string. |
| Copying and Concatenation | Functions to copy the contents of strings and arrays. |
| String/Array Comparison | Functions for byte-wise and character-wise comparison. |
| Collation Functions | Functions for collating strings. |
| Search Functions | Searching for a specific element or substring. |
| Finding Tokens in a String | Splitting a string into tokens by looking for delimiters. |
Extended Characters | |
| Extended Char Intro | Multibyte codes versus wide characters. |
| Locales and Extended Chars | The locale selects the character codes. |
| Multibyte Char Intro | How multibyte codes are represented. |
| Wide Char Intro | How wide characters are represented. |
| Wide String Conversion | Converting wide strings to multibyte code and vice versa. |
| Length of Char | how many bytes make up one multibyte char. |
| Converting One Char | Converting a string character by character. |
| Example of Conversion | Example showing why converting one character at a time may be useful. |
| Shift State | Multibyte codes with "shift characters". |
Locales and Internationalization | |
| Effects of Locale | Actions affected by the choice of locale. |
| Choosing Locale | How the user specifies a locale. |
| Locale Categories | Different purposes for which you can select a locale. |
| Setting the Locale | How a program specifies the locale. |
| Standard Locales | Locale names available on all systems. |
| Numeric Formatting | How to format numbers for the chosen locale. |
Searching and Sorting | |
| Comparison Functions | Defining how to compare two objects. Since the sort and search facilities are general, you have to specify the ordering. |
| Array Search Function | The bsearch function. |
| Array Sort Function | The qsort function. |
| Search/Sort Example | An example program. |
Pattern Matching | |
| Wildcard Matching | Matching a wildcard pattern against a single string. |
| Globbing | Finding the files that match a wildcard pattern. |
| Regular Expressions | Matching regular expressions against strings. |
| Word Expansion | Expanding shell variables, nested commands, arithmetic, and wildcards. This is what the shell does with shell commands. |
I/O Overview | |
| I/O Concepts | Some basic information and terminology. |
| File Names | How to refer to a file. |
I/O Concepts | |
| Streams and File Descriptors | The GNU Library provides two ways to access the contents of files. |
| File Position | The number of bytes from the beginning of the file. |
File Names | |
| Directories | Directories contain entries for files. |
| File Name Resolution | A file name specifies how to look up a file. |
| File Name Errors | Error conditions relating to file names. |
| File Name Portability | File name portability and syntax issues. |
I/O on Streams | |
| Streams | About the data type representing a stream. |
| Standard Streams | Streams to the standard input and output devices are created for you. |
| Opening Streams | How to create a stream to talk to a file. |
| Closing Streams | Close a stream when you are finished with it. |
| Simple Output | Unformatted output by characters and lines. |
| Character Input | Unformatted input by characters and words. |
| Line Input | Reading a line or a record from a stream. |
| Unreading | Peeking ahead/pushing back input just read. |
| Formatted Output | printf and related functions. |
| Customizing Printf | You can define new conversion specifiers forprintf and friends. |
| Formatted Input | scanf and related functions. |
| Block Input/Output | Input and output operations on blocks of data. |
| EOF and Errors | How you can tell if an I/O error happens. |
| Binary Streams | Some systems distinguish between text files and binary files. |
| File Positioning | About random-access streams. |
| Portable Positioning | Random access on peculiar ANSI C systems. |
| Stream Buffering | How to control buffering of streams. |
| Temporary Files | How to open a temporary file. |
| Other Kinds of Streams | Other Kinds of Streams |
Unreading | |
| Unreading Idea | An explanation of unreading with pictures. |
| How Unread | How to call ungetc to do unreading. |
Formatted Output | |
| Formatted Output Basics | Some examples to get you started. |
| Output Conversion Syntax | General syntax of conversion specifications. |
| Table of Output Conversions | Summary of output conversions, what they do. |
| Integer Conversions | Details of formatting integers. |
| Floating-Point Conversions | Details of formatting floating-point numbers. |
| Other Output Conversions | Details about formatting of strings, characters, pointers, and the like. |
| Formatted Output Functions | Descriptions of the actual functions. |
| Variable Arguments Output | vprintf and friends. |
| Parsing a Template String | What kinds of arguments does a given template call for? |
Customizing Printf | |
| Registering New Conversions | |
| Conversion Specifier Options | |
| Defining the Output Handler | |
| Printf Extension Example | |
Formatted Input | |
| Formatted Input Basics | Some basics to get you started. |
| Input Conversion Syntax | Syntax of conversion specifications. |
| Table of Input Conversions | Summary of input conversions and what they do. |
| Numeric Input Conversions | Details of conversions for reading numbers. |
| String Input Conversions | Details of conversions for reading strings. |
| Other Input Conversions | Details of miscellaneous other conversions. |
| Formatted Input Functions | Descriptions of the actual functions. |
| Variable Arguments Input | vscanf and friends. |
Stream Buffering | |
| Buffering Concepts | Terminology is defined here. |
| Flushing Buffers | How to ensure that output buffers are flushed. |
| Controlling Buffering | How to specify what kind of buffering to use. |
Other Kinds of Streams | |
| String Streams | |
| Custom Streams | |
Programming Your Own Custom Streams | |
| Streams and Cookies | |
| Hook Functions | |
Low-Level I/O | |
| Opening and Closing Files | How to open and close file descriptors. |
| I/O Primitives | Reading and writing data. |
| File Position Primitive | Setting a descriptor's file position. |
| Descriptors and Streams | Converting descriptor to stream or vice-versa. |
| Stream/Descriptor Precautions | Precautions needed if you use both descriptors and streams. |
| Waiting for I/O | How to check for input or output on multiple file descriptors. |
| Control Operations | Various other operations on file descriptors. |
| Duplicating Descriptors | Fcntl commands for duplicating descriptors. |
| Descriptor Flags | Fcntl commands for manipulating flags associated with file descriptors. |
| File Status Flags | Fcntl commands for manipulating flags associated with open files. |
| File Locks | Fcntl commands for implementing file locking. |
| Interrupt Input | Getting a signal when input arrives. |
File System Interface | |
| Working Directory | This is used to resolve relative file names. |
| Accessing Directories | Finding out what files a directory contains. |
| Hard Links | Adding alternate names to a file. |
| Symbolic Links | A file that ``points to'' a file name. |
| Deleting Files | How to delete a file, and what that means. |
| Renaming Files | Changing a file's name. |
| Creating Directories | A system call just for creating a directory. |
| File Attributes | Attributes of individual files. |
| Making Special Files | How to create special files. |
Accessing Directories | |
| Directory Entries | Format of one directory entry. |
| Opening a Directory | How to open a directory stream. |
| Reading/Closing Directory | How to read directory entries from the stream. |
| Simple Directory Lister | A very simple directory listing program. |
| Random Access Directory | Rereading part of the directory already read with the same stream. |
File Attributes | |
| Attribute Meanings | The names of the file attributes, and what their values mean. |
| Reading Attributes | How to read the attributes of a file. |
| Testing File Type | Distinguishing ordinary files, directories, links... |
| File Owner | How ownership for new files is determined, and how to change it. |
| Permission Bits | How information about a file's access mode is stored. |
| Access Permission | How the system decides who can access a file. |
| Setting Permissions | How permissions for new files are assigned, and how to change them. |
| Testing File Access | How to find out if your process can access a file. |
| File Times | About the time attributes of a file. |
Pipes and FIFOs | |
| Creating a Pipe | Making a pipe with the pipe function. |
| Pipe to a Subprocess | Using a pipe to communicate with a child. |
| FIFO Special Files | Making a FIFO special file. |
Sockets | |
| Socket Concepts | Basic concepts you need to know about. |
| Communication Styles | Stream communication, datagrams, and others. |
| Socket Addresses | How socket names (``addresses'') work. |
| File Namespace | Details about the file namespace. |
| Internet Namespace | Details about the Internet namespace. |
| Open/Close Sockets | Creating sockets and destroying them. |
| Connections | Operations on sockets with connection state. |
| Datagrams | Operations on datagram sockets. |
| Socket Options | Miscellaneous low-level socket options. |
| Networks Database | Accessing the database of network names. |
Socket Addresses | |
| Address Formats | About struct sockaddr . |
| Setting Address | Binding an address to a socket. |
| Reading Address | Reading the address of a socket. |
Internet Domain | |
| Internet Address Format | How socket addresses are specified in the Internet namespace. |
| Host Addresses | All about host addresses of Internet hosts. |
| Protocols Database | Referring to protocols by name. |
| Services Database | Ports may have symbolic names. |
| Byte Order | Different hosts may use different byte ordering conventions; you need to canonicalize host address and port number. |
| Inet Example | Putting it all together. |
Host Addresses | |
| Abstract Host Addresses | What a host number consists of. |
| Data type | Data type for a host number. |
| Functions | Functions to operate on them. |
| Names | Translating host names to host numbers. |
Open/Close Sockets | |
| Creating a Socket | How to open a socket. |
| Closing a Socket | How to close a socket. |
| Socket Pairs | These are created like pipes. |
Connections | |
| Connecting | What the client program must do. |
| Listening | How a server program waits for requests. |
| Accepting Connections | What the server does when it gets a request. |
| Who is Connected | Getting the address of the other side of a connection. |
| Transferring Data | How to send and receive data. |
| Byte Stream Example | An example client for communicating over a byte stream socket in the Internet namespace. |
| Server Example | A corresponding server program. |
| Out-of-Band Data | This is an advanced feature. |
Transferring Data | |
| Sending Data | Sending data with write . |
| Receiving Data | Reading data with read . |
| Socket Data Options | Using send and recv . |
Datagrams | |
| Sending Datagrams | Sending packets on a datagram socket. |
| Receiving Datagrams | Receiving packets on a datagram socket. |
| Datagram Example | An example program: packets sent over a datagram stream in the file namespace. |
| Example Receiver | Another program, that receives those packets. |
Socket Options | |
| Socket Option Functions | The basic functions for setting and getting socket options. |
| Socket-Level Options | Details of the options at the socket level. |
Low-Level Terminal Interface | |
| Is It a Terminal | How to determine if a file is a terminal device, and what its name is. |
| I/O Queues | About flow control and typeahead. |
| Canonical or Not | Two basic styles of input processing. |
| Terminal Modes | How to examine and modify flags controlling terminal I/O: echoing, signals, editing. |
| Line Control | Sending break sequences, clearing buffers... |
| Noncanon Example | How to read single characters without echo. |
Terminal Modes | |
| Mode Data Types | The data type struct termios and related types. |
| Mode Functions | Functions to read and set terminal attributes. |
| Setting Modes | The right way to set attributes reliably. |
| Input Modes | Flags controlling low-level input handling. |
| Output Modes | Flags controlling low-level output handling. |
| Control Modes | Flags controlling serial port behavior. |
| Local Modes | Flags controlling high-level input handling. |
| Line Speed | How to read and set the terminal line speed. |
| Special Characters | Characters that have special effects, and how to change them. |
| Noncanonical Input | Controlling how long to wait for input. |
Special Characters | |
| Editing Characters | |
| Signal Characters | |
| Start/Stop Characters | |
Mathematics | |
| Domain and Range Errors | How overflow conditions and the like are reported. |
| Not a Number | Making NANs and testing for NANs. |
| Trig Functions | Sine, cosine, and tangent. |
| Inverse Trig Functions | Arc sine, arc cosine, and arc tangent. |
| Exponents and Logarithms | Also includes square root. |
| Hyperbolic Functions | Hyperbolic sine and friends. |
| Pseudo-Random Numbers | Functions for generating pseudo-random numbers. |
| Absolute Value | Absolute value functions. |
Pseudo-Random Numbers | |
| ANSI Random | rand and friends. |
| BSD Random | random and friends. |
Low-Level Arithmetic Functions | |
| Normalization Functions | Hacks for radix-2 representations. |
| Rounding and Remainders | Determinining the integer and fractional parts of a float. |
| Integer Division | Functions for performing integer division. |
| Parsing of Numbers | Functions for ``reading'' numbers from strings. |
| Predicates on Floats | Some miscellaneous test functions. |
Parsing of Numbers | |
| Parsing of Integers | Functions for conversion of integer values. |
| Parsing of Floats | Functions for conversion of floating-point. |
Date and Time | |
| Processor Time | Measures processor time used by a program. |
| Calendar Time | Manipulation of ``real'' dates and times. |
| Setting an Alarm | Sending a signal after a specified time. |
| Sleeping | Waiting for a period of time. |
Processor Time | |
| Basic CPU Time | The clock function. |
| Detailed CPU Time | The times function. |
Calendar Time | |
| Simple Calendar Time | Facilities for manipulating calendar time. |
| High-Resolution Calendar | A time representation with greater precision. |
| Broken-down Time | Facilities for manipulating local time. |
| Formatting Date and Time | Converting times to strings. |
| TZ Variable | How users specify the time zone. |
| Time Zone Functions | Functions to examine or specify the time zone. |
| Time Functions Example | An example program showing use of some of the time functions. |
Signal Handling | |
| Concepts of Signals | Introduction to the signal facilities. |
| Standard Signals | Particular kinds of signals with standard names and meanings. |
| Signal Actions | Specifying what happens when a particular signal is delivered. |
| Defining Handlers | How to write a signal handler function. |
| Generating Signals | How to send a signal to a process. |
| Blocking Signals | Making the system hold signals temporarily. |
| Waiting for a Signal | Suspending your program until a signal arrives. |
| Signal Stack | Using a Separate Signal Stack |
| BSD Signal Handling | Additional functions for backward compatibility with BSD. |
Basic Concepts of Signals | |
| Kinds of Signals | Some examples of what can cause a signal. |
| Signal Generation | Concepts of why and how signals occur. |
| Delivery of Signal | Concepts of what a signal does to the process. |
Standard Signals | |
| Program Error Signals | Used to report serious program errors. |
| Termination Signals | Used to interrupt and/or terminate the program. |
| Alarm Signals | Used to indicate expiration of timers. |
| Asynchronous I/O Signals | Used to indicate input is available. |
| Job Control Signals | Signals used to support job control. |
| Operation Error Signals | Used to report operational system errors. |
| Miscellaneous Signals | Miscellaneous Signals. |
| Signal Messages | Printing a message describing a signal. |
Specifying Signal Actions | |
| Basic Signal Handling | The simple signal function. |
| Advanced Signal Handling | The more powerful sigaction function. |
| Signal and Sigaction | How those two functions interact. |
| Sigaction Function Example | An example of using the sigaction function. |
| Flags for Sigaction | Specifying options for signal handling. |
| Initial Signal Actions | How programs inherit signal actions. |
Defining Signal Handlers | |
| Handler Returns | |
| Termination in Handler | |
| Longjmp in Handler | |
| Signals in Handler | |
| Nonreentrancy | |
| Atomic Data Access | |
Generating Signals | |
| Signaling Yourself | Signaling Yourself |
| Signaling Another Process | Send a signal to another process. |
| Permission for kill | Permission for using kill |
| Kill Example | Using kill for Communication |
Blocking Signals | |
| Why Block | The purpose of blocking signals. |
| Signal Sets | How to specify which signals to block. |
| Process Signal Mask | Blocking delivery of signals to your process during normal execution. |
| Testing for Delivery | Blocking to Test for Delivery of a Signal |
| Blocking for Handler | Blocking additional signals while a handler is being run. |
| Checking for Pending Signals | Checking for Pending Signals |
| Remembering a Signal | How you can get almost the same effect as blocking a signal, by handling it and setting a flag to be tested later. |
Waiting for a Signal | |
| Using Pause | The simple way, using pause . |
| Pause Problems | Why the simple way is often not very good. |
| Sigsuspend | Reliably waiting for a specific signal. |
BSD Signal Handling | |
| BSD Handler | BSD Function to Establish a Handler. |
| Blocking in BSD | BSD Functions for Blocking Signals |
Process Startup and Termination | |
| Program Arguments | Parsing your program's command-line arguments. |
| Environment Variables | How to access parameters inherited from a parent process. |
| Program Termination | How to cause a process to terminate and return status information to its parent. |
Program Arguments | |
| Argument Syntax | By convention, options start with a hyphen. |
| Parsing Options | The getopt function. |
| Example of Getopt | An example of parsing options with getopt . |
| Long Options | GNU utilities should accept long-named options. Here is how to do that. |
| Long Option Example | An example of using getopt_long . |
Environment Variables | |
| Environment Access | How to get and set the values of environment variables. |
| Standard Environment | These environment variables have standard interpretations. |
Program Termination | |
| Normal Termination | If a program calls exit , aprocess terminates normally. |
| Exit Status | The exit status provides informationabout why the process terminated. |
| Cleanups on Exit | A process can run its own cleanup functions upon normal termination. |
| Aborting a Program | The abort function causesabnormal program termination. |
| Termination Internals | What happens when a process terminates. |
Child Processes | |
| Running a Command | The easy way to run another program. |
| Process Creation Concepts | An overview of the hard way to do it. |
| Process Identification | How to get the process ID of a process. |
| Creating a Process | How to fork a child process. |
| Executing a File | How to make a child execute another program. |
| Process Completion | How to tell when a child process has completed. |
| Process Completion Status | How to interpret the status value returned from a child process. |
| BSD Wait Functions | More functions, for backward compatibility. |
| Process Creation Example | A complete example program. |
Job Control | |
| Concepts of Job Control | Concepts of Job Control |
| Job Control is Optional | Not all POSIX systems support job control. |
| Controlling Terminal | How a process gets its controlling terminal. |
| Access to the Terminal | How processes share the controlling terminal. |
| Orphaned Process Groups | Jobs left after the user logs out. |
| Implementing a Shell | What a shell must do to implement job control. |
| Functions for Job Control | Functions to control process groups. |
Implementing a Job Control Shell | |
| Data Structures | Introduction to the sample shell. |
| Initializing the Shell | What the shell must do to take responsibility for job control. |
| Launching Jobs | Creating jobs to execute commands. |
| Foreground and Background | Putting a job in foreground of background. |
| Stopped and Terminated Jobs | Reporting job status. |
| Continuing Stopped Jobs | How to continue a stopped job in the foreground or background. |
| Missing Pieces | Other parts of the shell. |
Functions for Job Control | |
| Identifying the Terminal | Determining the controlling terminal's name. |
| Process Group Functions | Functions for manipulating process groups. |
| Terminal Access Functions | Functions for controlling terminal access. |
Users and Groups | |
| User and Group IDs | Each user and group has a unique numeric ID. |
| Process Persona | The user IDs and group IDs of a process. |
| Why Change Persona | Why a program might need to change its user and/or group IDs. |
| How Change Persona | Restrictions on changing user and group IDs. |
| Reading Persona | Examining the process's user and group IDs. |
| Setting User ID | |
| Setting Groups | |
| Enable/Disable Setuid | |
| Setuid Program Example | Setuid Program Example |
| Tips for Setuid | |
| Who Logged In | Getting the name of the user who logged in, or of the real user ID of the current process. |
| User Database | Functions and data structures for accessing the user database. |
| Group Database | Functions and data structures for accessing the group database. |
| Database Example | Example program showing use of database inquiry functions. |
User Database | |
| User Data Structure | |
| Lookup User | |
| Scanning All Users | Scanning the List of All Users |
| Writing a User Entry | |
Group Database | |
| Group Data Structure | |
| Lookup Group | |
| Scanning All Groups | Scanning the List of All Groups |
System Information | |
| Host Identification | Determining the name of the machine. |
| Hardware/Software Type ID | Determining the hardware type and operating system type. |
System Configuration Limits | |
| General Limits | Constants and functions that describe various process-related limits that have one uniform value for any given machine. |
| System Options | Optional POSIX features. |
| Version Supported | Version numbers of POSIX.1 and POSIX.2. |
| Sysconf | Getting specific configuration values of general limits and system options. |
| Minimums | Minimum values for general limits. |
| Limits for Files | Size limitations on individual files. These can vary between file systems or even from file to file. |
| Options for Files | Optional features that some files may support. |
| File Minimums | Minimum values for file limits. |
| Pathconf | Getting the limit values for a particular file. |
| Utility Limits | Capacity limits of POSIX.2 utility programs. |
| Utility Minimums | Minimum allowable values of those limits. |
| String Parameters | Getting the default search path. |
Library Facilities that are Part of the C Language | |
| Consistency Checking | Using assert to abortif something ``impossible'' happens. |
| Variadic Functions | Defining functions with varying numbers of arguments. |
| Null Pointer Constant | The macro NULL . |
| Important Data Types | Data types for object sizes. |
| Data Type Measurements | Parameters of data type representations. |
Variadic Functions | |
| Why Variadic | Reasons for making functions take variable arguments. |
| How Variadic | How to define and call variadic functions. |
| Argument Macros | Detailed specification of the macros for accessing variable arguments. |
| Variadic Example | A complete example. |
How Variadic Functions are Defined and Used | |
| Variadic Prototypes | How to make a prototype for a function with variable arguments. |
| Receiving Arguments | Steps you must follow to access the optional argument values. |
| How Many Arguments | How to decide whether there are more arguments. |
| Calling Variadics | Things you need to know about calling variable arguments functions. |
Data Type Measurements | |
| Width of Type | How many bits does an integer type hold? |
| Range of Type | What are the largest and smallest values that an integer type can hold? |
| Floating Type Macros | Parameters that measure floating-point types. |
| Structure Measurement | Getting measurements on structure types. |
Floating Type Macros | |
| Floating Point Concepts | Definitions of terminology. |
| Floating Point Parameters | Dimensions, limits of floating point types. |
| IEEE Floating Point | How one common representation is described. |
Library Maintenance | |
| Installation | How to configure, compile and install the GNU C library. |
| Reporting Bugs | How to report bugs (if you want to get them fixed) and other troubles you may have with the GNU C library. |
| Porting | How to port the GNU C library to a new machine or operating system. |
| Contributors | Who wrote what parts of the GNU C Library. |
Porting the GNU C Library | |
| Hierarchy Conventions | How the `sysdeps' hierarchy is layed out. |
| Porting to Unix | Porting the library to an average Unix-like system. |