1. Introduction | | Purpose of the GNU C Library. |
2. Error Reporting | | How library functions report errors. |
3. Virtual Memory Allocation And Paging | | Allocating virtual memory and controlling
paging. |
4. Character Handling | | Character testing and conversion functions. |
5. String and Array Utilities | | Utilities for copying and comparing strings
and arrays. |
6. Character Set Handling | | Support for extended character sets. |
7. Locales and Internationalization | | The country and language can affect the
behavior of library functions. |
8. Message Translation | | How to make the program speak the user's
language. |
9. Searching and Sorting | | General searching and sorting functions. |
10. Pattern Matching | | Matching shell "globs" and regular
expressions. |
11. Input/Output Overview | | Introduction to the I/O facilities. |
12. Input/Output on Streams | | High-level, portable I/O facilities. |
13. Low-Level Input/Output | | Low-level, less portable I/O. |
14. File System Interface | | Functions for manipulating files. |
15. Pipes and FIFOs | | A simple interprocess communication
mechanism. |
16. Sockets | | A more complicated IPC mechanism, with
networking support. |
17. Low-Level Terminal Interface | | How to change the characteristics of a
terminal device. |
18. Syslog | | System logging and messaging. |
19. Mathematics | | Math functions, useful constants, random
numbers. |
20. Arithmetic Functions | | Low level arithmetic functions. |
21. Date and Time | | Functions for getting the date and time and
formatting them nicely. |
22. Resource Usage And Limitation | | Functions for examining resource usage and
getting and setting limits. |
23. Non-Local Exits | | Jumping out of nested function calls. |
24. Signal Handling | | How to send, block, and handle signals. |
25. The Basic Program/System Interface | | Writing the beginning and end of your
program. |
26. Processes | | How to create processes and run other
programs. |
27. Job Control | | All about process groups and sessions. |
28. System Databases and Name Service Switch | | Accessing system databases. |
29. Users and Groups | | How users are identified and classified. |
30. System Management | | Controlling the system and getting
information about it. |
31. System Configuration Parameters | | Parameters describing operating system
limits. |
32. DES Encryption and Password Handling | | DES encryption and password handling. |
33. Debugging support | | Functions to help debugging applications. |
|
Appendices
|
|
A. C Language Facilities in the Library | | C language features provided by the library. |
B. Summary of Library Facilities | | A summary showing the syntax, header file,
and derivation of each library feature. |
C. Installing the GNU C Library | | How to install the GNU C library. |
D. Library Maintenance | | How to enhance and port the GNU C Library. |
E. Contributors to the GNU C Library | | Who wrote what parts of the GNU C library. |
F. Free Software Needs Free Documentation | | |
G. GNU Lesser General Public License | | The GNU Lesser General Public License says
how you can copy and share the GNU C Library. |
H. GNU Free Documentation License | | This manual is under the GNU Free
Documentation License. |
|
Indices
|
|
Concept Index | | Index of concepts and names. |
Type Index | | Index of types and type qualifiers. |
Function and Macro Index | | Index of functions and function-like macros. |
Variable and Constant Macro Index | | Index of variables and variable-like macros. |
Program and File Index | | Index of programs and files. |
|
-- The Detailed Node Listing ---
|
|
Introduction
|
|
1.1 Getting Started | | What this manual is for and how to use it. |
1.2 Standards and Portability | | Standards and sources upon which the GNU
C library is based. |
1.3 Using the Library | | Some practical uses for the library. |
1.4 Roadmap to the Manual | | Overview of the remaining chapters in
this manual. |
|
Standards and Portability
|
|
1.2.1 ISO C | | The international standard for the C
programming language. |
1.2.2 POSIX (The Portable Operating System Interface) | | The ISO/IEC 9945 (aka IEEE 1003) standards
for operating systems. |
1.2.3 Berkeley Unix | | BSD and SunOS. |
1.2.4 SVID (The System V Interface Description) | | The System V Interface Description. |
1.2.5 XPG (The X/Open Portability Guide) | | The X/Open Portability Guide. |
|
Using the Library
|
|
1.3.1 Header Files | | How to include the header files in your
programs. |
1.3.2 Macro Definitions of Functions | | Some functions in the library may really
be implemented as macros. |
1.3.3 Reserved Names | | The C standard reserves some names for
the library, and some for users. |
1.3.4 Feature Test Macros | | How to control what names are defined. |
|
Error Reporting
|
|
2.1 Checking for Errors | | How errors are reported by library functions. |
2.2 Error Codes | | Error code macros; all of these expand
into integer constant values. |
2.3 Error Messages | | Mapping error codes onto error messages. |
|
Memory
|
|
3.1 Process Memory Concepts | | An introduction to concepts and terminology. |
3.2 Allocating Storage For Program Data | | Allocating storage for your program data |
3.4 Locking Pages | | Preventing page faults |
3.3 Resizing the Data Segment | | brk , sbrk |
|
Memory Allocation
|
|
3.2.1 Memory Allocation in C Programs | | How to get different kinds of allocation in C. |
3.2.2 Unconstrained Allocation | | The malloc facility allows fully general
dynamic allocation. |
3.2.3 Allocation Debugging | | Finding memory leaks and not freed memory. |
3.2.4 Obstacks | | Obstacks are less general than malloc
but more efficient and convenient. |
3.2.5 Automatic Storage with Variable Size | | Allocation of variable-sized blocks
of automatic storage that are freed when the
calling function returns. |
|
Unconstrained Allocation
|
|
3.2.2.1 Basic Memory Allocation | | Simple use of malloc . |
3.2.2.2 Examples of malloc | | Examples of malloc . xmalloc . |
3.2.2.3 Freeing Memory Allocated with malloc | | Use free to free a block you
got with malloc . |
3.2.2.4 Changing the Size of a Block | | Use realloc to make a block
bigger or smaller. |
3.2.2.5 Allocating Cleared Space | | Use calloc to allocate a
block and clear it. |
3.2.2.6 Efficiency Considerations for malloc | | Efficiency considerations in use of
these functions. |
3.2.2.7 Allocating Aligned Memory Blocks | | Allocating specially aligned memory. |
3.2.2.8 Malloc Tunable Parameters | | Use mallopt to adjust allocation
parameters. |
3.2.2.9 Heap Consistency Checking | | Automatic checking for errors. |
3.2.2.10 Memory Allocation Hooks | | You can use these hooks for debugging
programs that use malloc . |
3.2.2.11 Statistics for Memory Allocation with malloc | | Getting information about how much
memory your program is using. |
3.2.2.12 Summary of malloc -Related Functions | | Summary of malloc and related functions. |
|
Allocation Debugging
|
|
3.2.3.1 How to install the tracing functionality | | |
3.2.3.2 Example program excerpts | | Example programs excerpts. |
3.2.3.3 Some more or less clever ideas | | |
3.2.3.4 Interpreting the traces | | What do all these lines mean? |
|
Obstacks
|
|
3.2.4.1 Creating Obstacks | | How to declare an obstack in your program. |
3.2.4.2 Preparing for Using Obstacks | | Preparations needed before you can
use obstacks. |
3.2.4.3 Allocation in an Obstack | | Allocating objects in an obstack. |
3.2.4.4 Freeing Objects in an Obstack | | Freeing objects in an obstack. |
3.2.4.5 Obstack Functions and Macros | | The obstack functions are both
functions and macros. |
3.2.4.6 Growing Objects | | Making an object bigger by stages. |
3.2.4.7 Extra Fast Growing Objects | | Extra-high-efficiency (though more
complicated) growing objects. |
3.2.4.8 Status of an Obstack | | Inquiries about the status of an obstack. |
3.2.4.9 Alignment of Data in Obstacks | | Controlling alignment of objects in obstacks. |
3.2.4.10 Obstack Chunks | | How obstacks obtain and release chunks;
efficiency considerations. |
3.2.4.11 Summary of Obstack Functions | | |
|
Variable Size Automatic
|
|
3.2.5.1 alloca Example | | Example of using alloca . |
3.2.5.2 Advantages of alloca | | Reasons to use alloca . |
3.2.5.3 Disadvantages of alloca | | Reasons to avoid alloca . |
3.2.5.4 GNU C Variable-Size Arrays | | Only in GNU C, here is an alternative
method of allocating dynamically and
freeing automatically. |
|
Locking Pages
|
|
3.4.1 Why Lock Pages | | Reasons to read this section. |
3.4.2 Locked Memory Details | | Everything you need to know locked
memory |
3.4.3 Functions To Lock And Unlock Pages | | Here's how to do it. |
|
Character Handling
|
|
4.1 Classification of Characters | | Testing whether characters are
letters, digits, punctuation, etc. |
|
4.2 Case Conversion | | Case mapping, and the like. |
4.3 Character class determination for wide characters | | |
4.4 Notes on using the wide character classes | | |
4.5 Mapping of wide characters. | | |
|
String and Array Utilities
|
|
5.1 Representation of Strings | | Introduction to basic concepts. |
5.2 String and Array Conventions | | Whether to use a string function or an
arbitrary array function. |
5.3 String Length | | Determining the length of a string. |
5.4 Copying and Concatenation | | Functions to copy the contents of strings
and arrays. |
5.5 String/Array Comparison | | Functions for byte-wise and character-wise
comparison. |
5.6 Collation Functions | | Functions for collating strings. |
5.7 Search Functions | | Searching for a specific element or substring. |
5.8 Finding Tokens in a String | | Splitting a string into tokens by looking
for delimiters. |
5.9 strfry | | Function for flash-cooking a string. |
5.10 Trivial Encryption | | Obscuring data. |
5.11 Encode Binary Data | | Encoding and Decoding of Binary Data. |
5.12 Argz and Envz Vectors | | Null-separated string vectors. |
|
Argz and Envz Vectors
|
|
5.12.1 Argz Functions | | Operations on argz vectors. |
5.12.2 Envz Functions | | Additional operations on environment vectors. |
|
Character Set Handling
|
|
6.1 Introduction to Extended Characters | | |
6.2 Overview about Character Handling Functions | | |
6.3 Restartable Multibyte Conversion Functions | | Restartable multibyte conversion
Functions. |
6.4 Non-reentrant Conversion Function | | |
6.5 Generic Charset Conversion | | |
|
Restartable multibyte conversion
|
|
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 | | |
|
Non-reentrant Conversion
|
|
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 | | |
|
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 | | |
|
Locales
|
|
7.1 What Effects a Locale Has | | Actions affected by the choice of
locale. |
7.2 Choosing a Locale | | How the user specifies a locale. |
7.3 Categories of Activities that Locales Affect | | Different purposes for which you can
select a locale. |
7.4 How Programs Set the Locale | | How a program specifies the locale
with library functions. |
7.5 Standard Locales | | Locale names available on all systems. |
7.6 Accessing Locale Information | | How to access the information for the locale. |
7.7 A dedicated function to format numbers | | |
7.8 Yes-or-No Questions | | Check a Response against the locale. |
|
Locale Information
|
|
7.6.1 localeconv : It is portable but ... | | ISO C's localeconv . |
7.6.2 Pinpoint Access to Locale Data | | X/Open's nl_langinfo . |
|
The Lame Way to Locale Data
|
|
7.6.1.1 Generic Numeric Formatting Parameters | | Parameters for formatting numbers and
currency amounts. |
7.6.1.2 Printing the Currency Symbol | | How to print the symbol that identifies an
amount of money (e.g. `$'). |
7.6.1.3 Printing the Sign of a Monetary Amount | | How to print the (positive or negative) sign
for a monetary amount, if one exists. |
|
Message Translation
|
|
8.1 X/Open Message Catalog Handling | | The catgets family of functions. |
8.2 The Uniforum approach to Message Translation | | The gettext family of functions. |
|
Message catalogs a la X/Open
|
|
8.1.1 The catgets function family | | |
8.1.2 Format of the message catalog files | | |
8.1.3 Generate Message Catalogs files | | How to generate message catalogs files which
can be used by the functions. |
8.1.4 How to use the catgets interface | | |
|
The Uniforum approach
|
|
8.2.1 The gettext family of functions | | |
8.2.2 Programs to handle message catalogs for gettext | | |
|
Message catalogs with gettext
|
|
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 Additional functions for more complicated situations | | |
8.2.1.4 How to specify the output character set gettext uses | | How to specify the output character set |
gettext uses.
|
8.2.1.5 How to use gettext in GUI programs | | |
8.2.1.6 User influence on gettext | | The possibilities of the user to influence
the way gettext works. |
|
Searching and Sorting
|
|
9.1 Defining the Comparison Function | | Defining how to compare two objects.
Since the sort and search facilities
are general, you have to specify the
ordering. |
9.2 Array Search Function | | The bsearch function. |
9.3 Array Sort Function | | The qsort function. |
9.4 Searching and Sorting Example | | An example program. |
9.5 The hsearch function. | | |
9.6 The tsearch function. | | |
|
Pattern Matching
|
|
10.1 Wildcard Matching | | Matching a wildcard pattern against a single string. |
10.2 Globbing | | Finding the files that match a wildcard pattern. |
10.3 Regular Expression Matching | | Matching regular expressions against strings. |
10.4 Shell-Style Word Expansion | | Expanding shell variables, nested commands,
arithmetic, and wildcards.
This is what the shell does with shell commands. |
|
Globbing
|
|
10.2.1 Calling glob | | Basic use of glob . |
10.2.2 Flags for Globbing | | Flags that enable various options in glob . |
10.2.3 More Flags for Globbing | | GNU specific extensions to glob . |
|
Regular Expressions
|
|
10.3.1 POSIX Regular Expression Compilation | | Using regcomp to prepare to match. |
10.3.2 Flags for POSIX Regular Expressions | | Syntax variations for regcomp . |
10.3.3 Matching a Compiled POSIX Regular Expression | | Using regexec to match the compiled
pattern that you get from regcomp . |
10.3.4 Match Results with Subexpressions | | Finding which parts of the string were matched. |
10.3.5 Complications in Subexpression Matching | | Find points of which parts were matched. |
10.3.6 POSIX Regexp Matching Cleanup | | Freeing storage; reporting errors. |
|
Word Expansion
|
|
10.4.1 The Stages of Word Expansion | | What word expansion does to a string. |
10.4.2 Calling wordexp | | How to call wordexp . |
10.4.3 Flags for Word Expansion | | Options you can enable in wordexp . |
10.4.4 wordexp Example | | A sample program that does word expansion. |
10.4.5 Details of Tilde Expansion | | Details of how tilde expansion works. |
10.4.6 Details of Variable Substitution | | Different types of variable substitution. |
|
I/O Overview
|
|
11.1 Input/Output Concepts | | Some basic information and terminology. |
11.2 File Names | | How to refer to a file. |
|
I/O Concepts
|
|
11.1.1 Streams and File Descriptors | | The GNU Library provides two ways
to access the contents of files. |
11.1.2 File Position | | The number of bytes from the
beginning of the file. |
|
File Names
|
|
11.2.1 Directories | | Directories contain entries for files. |
11.2.2 File Name Resolution | | A file name specifies how to look up a file. |
11.2.3 File Name Errors | | Error conditions relating to file names. |
11.2.4 Portability of File Names | | File name portability and syntax issues. |
|
I/O on Streams
|
|
12.1 Streams | | About the data type representing a stream. |
12.2 Standard Streams | | Streams to the standard input and output
devices are created for you. |
12.3 Opening Streams | | How to create a stream to talk to a file. |
12.4 Closing Streams | | Close a stream when you are finished with it. |
12.5 Streams and Threads | | Issues with streams in threaded programs. |
12.6 Streams in Internationalized Applications | | Streams in internationalized applications. |
12.7 Simple Output by Characters or Lines | | Unformatted output by characters and lines. |
12.8 Character Input | | Unformatted input by characters and words. |
12.9 Line-Oriented Input | | Reading a line or a record from a stream. |
12.10 Unreading | | Peeking ahead/pushing back input just read. |
12.11 Block Input/Output | | Input and output operations on blocks of data. |
12.12 Formatted Output | | printf and related functions. |
12.13 Customizing printf | | You can define new conversion specifiers for |
printf and friends.
|
12.14 Formatted Input | | scanf and related functions. |
12.15 End-Of-File and Errors | | How you can tell if an I/O error happens. |
12.16 Recovering from errors | | What you can do about errors. |
12.17 Text and Binary Streams | | Some systems distinguish between text files
and binary files. |
12.18 File Positioning | | About random-access streams. |
12.19 Portable File-Position Functions | | Random access on peculiar ISO C systems. |
12.20 Stream Buffering | | How to control buffering of streams. |
12.21 Other Kinds of Streams | | Streams that do not necessarily correspond
to an open file. |
12.22 Formatted Messages | | Print strictly formatted messages. |
|
Unreading
|
|
12.10.1 What Unreading Means | | An explanation of unreading with pictures. |
12.10.2 Using ungetc To Do Unreading | | How to call ungetc to do unreading. |
|
Formatted Output
|
|
12.12.1 Formatted Output Basics | | Some examples to get you started. |
12.12.2 Output Conversion Syntax | | General syntax of conversion
specifications. |
12.12.3 Table of Output Conversions | | Summary of output conversions and
what they do. |
12.12.4 Integer Conversions | | Details about formatting of integers. |
12.12.5 Floating-Point Conversions | | Details about formatting of
floating-point numbers. |
12.12.6 Other Output Conversions | | Details about formatting of strings,
characters, pointers, and the like. |
12.12.7 Formatted Output Functions | | Descriptions of the actual functions. |
12.12.8 Dynamically Allocating Formatted Output | | Functions that allocate memory for the output. |
12.12.9 Variable Arguments Output Functions | | vprintf and friends. |
12.12.10 Parsing a Template String | | What kinds of args does a given template
call for? |
12.12.11 Example of Parsing a Template String | | Sample program using parse_printf_format . |
|
Customizing Printf
|
|
12.13.1 Registering New Conversions | | Using register_printf_function
to register a new output conversion. |
12.13.2 Conversion Specifier Options | | The handler must be able to get
the options specified in the
template when it is called. |
12.13.3 Defining the Output Handler | | Defining the handler and arginfo
functions that are passed as arguments
to register_printf_function . |
12.13.4 printf Extension Example | | How to define a printf
handler function. |
12.13.5 Predefined printf Handlers | | Predefined printf handlers. |
|
Formatted Input
|
|
12.14.1 Formatted Input Basics | | Some basics to get you started. |
12.14.2 Input Conversion Syntax | | Syntax of conversion specifications. |
12.14.3 Table of Input Conversions | | Summary of input conversions and what they do. |
12.14.4 Numeric Input Conversions | | Details of conversions for reading numbers. |
12.14.5 String Input Conversions | | Details of conversions for reading strings. |
12.14.6 Dynamically Allocating String Conversions | | String conversions that malloc the buffer. |
12.14.7 Other Input Conversions | | Details of miscellaneous other conversions. |
12.14.8 Formatted Input Functions | | Descriptions of the actual functions. |
12.14.9 Variable Arguments Input Functions | | vscanf and friends. |
|
Stream Buffering
|
|
12.20.1 Buffering Concepts | | Terminology is defined here. |
12.20.2 Flushing Buffers | | How to ensure that output buffers are flushed. |
12.20.3 Controlling Which Kind of Buffering | | How to specify what kind of buffering to use. |
|
Other Kinds of Streams
|
|
12.21.1 String Streams | | Streams that get data from or put data in
a string or memory buffer. |
12.21.2 Obstack Streams | | Streams that store data in an obstack. |
12.21.3 Programming Your Own Custom Streams | | Defining your own streams with an arbitrary
input data source and/or output data sink. |
|
Custom Streams
|
|
12.21.3.1 Custom Streams and Cookies | | The cookie records where to fetch or
store data that is read or written. |
12.21.3.2 Custom Stream Hook Functions | | How you should define the four hook
functions that a custom stream needs. |
|
Formatted Messages
|
|
12.22.1 Printing Formatted Messages | | The fmtmsg function. |
12.22.2 Adding Severity Classes | | Add more severity classes. |
12.22.3 How to use fmtmsg and addseverity | | |
|
Low-Level I/O
|
|
13.1 Opening and Closing Files | | How to open and close file
descriptors. |
13.2 Input and Output Primitives | | Reading and writing data. |
13.3 Setting the File Position of a Descriptor | | Setting a descriptor's file
position. |
13.4 Descriptors and Streams | | Converting descriptor to stream
or vice-versa. |
13.5 Dangers of Mixing Streams and Descriptors | | Precautions needed if you use both
descriptors and streams. |
13.6 Fast Scatter-Gather I/O | | Fast I/O to discontinuous buffers. |
13.7 Memory-mapped I/O | | Using files like memory. |
13.8 Waiting for Input or Output | | How to check for input or output
on multiple file descriptors. |
13.9 Synchronizing I/O operations | | Making sure all I/O actions completed. |
13.10 Perform I/O Operations in Parallel | | Perform I/O in parallel. |
13.11 Control Operations on Files | | Various other operations on file
descriptors. |
13.12 Duplicating Descriptors | | Fcntl commands for duplicating
file descriptors. |
13.13 File Descriptor Flags | | Fcntl commands for manipulating
flags associated with file
descriptors. |
13.14 File Status Flags | | Fcntl commands for manipulating
flags associated with open files. |
13.15 File Locks | | Fcntl commands for implementing
file locking. |
13.16 Interrupt-Driven Input | | Getting an asynchronous signal when
input arrives. |
13.17 Generic I/O Control operations | | |
|
Stream/Descriptor Precautions
|
|
13.5.1 Linked Channels | | Dealing with channels sharing a file position. |
13.5.2 Independent Channels | | Dealing with separately opened, unlinked channels. |
13.5.3 Cleaning Streams | | Cleaning a stream makes it safe to use
another channel. |
|
Asynchronous I/O
|
|
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 | | Getting into a consistent state. |
13.10.4 Cancellation of AIO Operations | | |
13.10.5 How to optimize the AIO implementation | | |
|
File Status Flags
|
|
13.14.1 File Access Modes | | Whether the descriptor can read or write. |
13.14.2 Open-time Flags | | Details of open . |
13.14.3 I/O Operating Modes | | Special modes to control I/O operations. |
13.14.4 Getting and Setting File Status Flags | | Fetching and changing these flags. |
|
File System Interface
|
|
14.1 Working Directory | | This is used to resolve relative
file names. |
14.2 Accessing Directories | | Finding out what files a directory
contains. |
14.3 Working with Directory Trees | | Apply actions to all files or a selectable
subset of a directory hierarchy. |
14.4 Hard Links | | Adding alternate names to a file. |
14.5 Symbolic Links | | A file that "points to" a file name. |
14.6 Deleting Files | | How to delete a file, and what that means. |
14.7 Renaming Files | | Changing a file's name. |
14.8 Creating Directories | | A system call just for creating a directory. |
14.9 File Attributes | | Attributes of individual files. |
14.10 Making Special Files | | How to create special files. |
14.11 Temporary Files | | Naming and creating temporary files. |
|
Accessing Directories
|
|
14.2.1 Format of a Directory Entry | | Format of one directory entry. |
14.2.2 Opening a Directory Stream | | How to open a directory stream. |
14.2.3 Reading and Closing a Directory Stream | | How to read directory entries from the stream. |
14.2.4 Simple Program to List a Directory | | A very simple directory listing program. |
14.2.5 Random Access in a Directory Stream | | Rereading part of the directory
already read with the same stream. |
14.2.6 Scanning the Content of a Directory | | Get entries for user selected subset of
contents in given directory. |
14.2.7 Simple Program to List a Directory, Mark II | | Revised version of the program. |
|
File Attributes
|
|
14.9.1 The meaning of the File Attributes | | The names of the file attributes,
and what their values mean. |
14.9.2 Reading the Attributes of a File | | How to read the attributes of a file. |
14.9.3 Testing the Type of a File | | Distinguishing ordinary files,
directories, links... |
14.9.4 File Owner | | How ownership for new files is determined,
and how to change it. |
14.9.5 The Mode Bits for Access Permission | | How information about a file's access
mode is stored. |
14.9.6 How Your Access to a File is Decided | | How the system decides who can access a file. |
14.9.7 Assigning File Permissions | | How permissions for new files are assigned,
and how to change them. |
14.9.8 Testing Permission to Access a File | | How to find out if your process can
access a file. |
14.9.9 File Times | | About the time attributes of a file. |
14.9.10 File Size | | Manually changing the size of a file. |
|
Pipes and FIFOs
|
|
15.1 Creating a Pipe | | Making a pipe with the pipe function. |
15.2 Pipe to a Subprocess | | Using a pipe to communicate with a
child process. |
15.3 FIFO Special Files | | Making a FIFO special file. |
15.4 Atomicity of Pipe I/O | | When pipe (or FIFO) I/O is atomic. |
|
Sockets
|
|
16.1 Socket Concepts | | Basic concepts you need to know about. |
16.2 Communication Styles | | Stream communication, datagrams and other styles. |
16.3 Socket Addresses | | How socket names ("addresses") work. |
16.4 Interface Naming | | Identifying specific network interfaces. |
16.5 The Local Namespace | | Details about the local namespace. |
16.6 The Internet Namespace | | Details about the Internet namespace. |
16.7 Other Namespaces | | Other namespaces not documented fully here. |
16.8 Opening and Closing Sockets | | Creating sockets and destroying them. |
16.9 Using Sockets with Connections | | Operations on sockets with connection state. |
16.10 Datagram Socket Operations | | Operations on datagram sockets. |
16.11 The inetd Daemon | | Inetd is a daemon that starts servers on request.
The most convenient way to write a server
is to make it work with Inetd. |
16.12 Socket Options | | Miscellaneous low-level socket options. |
16.13 Networks Database | | Accessing the database of network names. |
|
Socket Addresses
|
|
16.3.1 Address Formats | | About struct sockaddr . |
16.3.2 Setting the Address of a Socket | | Binding an address to a socket. |
16.3.3 Reading the Address of a Socket | | Reading the address of a socket. |
|
Local Namespace
|
|
16.5.1 Local Namespace Concepts | | What you need to understand. |
16.5.2 Details of Local Namespace | | Address format, symbolic names, etc. |
16.5.3 Example of Local-Namespace Sockets | | Example of creating a socket. |
|
Internet Namespace
|
|
16.6.1 Internet Socket Address Formats | | How socket addresses are specified in the
Internet namespace. |
16.6.2 Host Addresses | | All about host addresses of Internet host. |
16.6.6 Protocols Database | | Referring to protocols by name. |
16.6.3 Internet Ports | | Internet port numbers. |
16.6.4 The Services Database | | Ports may have symbolic names. |
16.6.5 Byte Order Conversion | | Different hosts may use different byte
ordering conventions; you need to
canonicalize host address and port number. |
16.6.7 Internet Socket Example | | Putting it all together. |
|
Host Addresses
|
|
16.6.2.1 Internet Host Addresses | | What a host number consists of. |
16.6.2.2 Host Address Data Type | | Data type for a host number. |
16.6.2.3 Host Address Functions | | Functions to operate on them. |
16.6.2.4 Host Names | | Translating host names to host numbers. |
|
Open/Close Sockets
|
|
16.8.1 Creating a Socket | | How to open a socket. |
16.8.2 Closing a Socket | | How to close a socket. |
16.8.3 Socket Pairs | | These are created like pipes. |
|
Connections
|
|
16.9.1 Making a Connection | | What the client program must do. |
16.9.2 Listening for Connections | | How a server program waits for requests. |
16.9.3 Accepting Connections | | What the server does when it gets a request. |
16.9.4 Who is Connected to Me? | | Getting the address of the
other side of a connection. |
16.9.5 Transferring Data | | How to send and receive data. |
16.9.6 Byte Stream Socket Example | | An example program: a client for communicating
over a byte stream socket in the Internet namespace. |
16.9.7 Byte Stream Connection Server Example | | A corresponding server program. |
16.9.8 Out-of-Band Data | | This is an advanced feature. |
|
Transferring Data
|
|
16.9.5.1 Sending Data | | Sending data with send . |
16.9.5.2 Receiving Data | | Reading data with recv . |
16.9.5.3 Socket Data Options | | Using send and recv . |
|
Datagrams
|
|
16.10.1 Sending Datagrams | | Sending packets on a datagram socket. |
16.10.2 Receiving Datagrams | | Receiving packets on a datagram socket. |
16.10.3 Datagram Socket Example | | An example program: packets sent over a
datagram socket in the local namespace. |
16.10.4 Example of Reading Datagrams | | Another program, that receives those packets. |
|
Inetd
|
|
16.11.1 inetd Servers | | |
16.11.2 Configuring inetd | | |
|
Socket Options
|
|
16.12.1 Socket Option Functions | | The basic functions for setting and getting
socket options. |
16.12.2 Socket-Level Options | | Details of the options at the socket level. |
|
Low-Level Terminal Interface
|
|
17.1 Identifying Terminals | | How to determine if a file is a terminal
device, and what its name is. |
17.2 I/O Queues | | About flow control and typeahead. |
17.3 Two Styles of Input: Canonical or Not | | Two basic styles of input processing. |
17.4 Terminal Modes | | How to examine and modify flags controlling
details of terminal I/O: echoing,
signals, editing. Posix. |
17.5 BSD Terminal Modes | | BSD compatible terminal mode setting |
17.6 Line Control Functions | | Sending break sequences, clearing
terminal buffers ... |
17.7 Noncanonical Mode Example | | How to read single characters without echo. |
17.8 Pseudo-Terminals | | How to open a pseudo-terminal. |
|
Terminal Modes
|
|
17.4.1 Terminal Mode Data Types | | The data type struct termios and
related types. |
17.4.2 Terminal Mode Functions | | Functions to read and set the terminal
attributes. |
17.4.3 Setting Terminal Modes Properly | | The right way to set terminal attributes
reliably. |
17.4.4 Input Modes | | Flags controlling low-level input handling. |
17.4.5 Output Modes | | Flags controlling low-level output handling. |
17.4.6 Control Modes | | Flags controlling serial port behavior. |
17.4.7 Local Modes | | Flags controlling high-level input handling. |
17.4.8 Line Speed | | How to read and set the terminal line speed. |
17.4.9 Special Characters | | Characters that have special effects,
and how to change them. |
17.4.10 Noncanonical Input | | Controlling how long to wait for input. |
|
Special Characters
|
|
17.4.9.1 Characters for Input Editing | | Special characters that terminate lines and
delete text, and other editing functions. |
17.4.9.2 Characters that Cause Signals | | Special characters that send or raise signals
to or for certain classes of processes. |
17.4.9.3 Special Characters for Flow Control | | Special characters that suspend or resume
suspended output. |
17.4.9.4 Other Special Characters | | Other special characters for BSD systems:
they can discard output, and print status. |
|
Pseudo-Terminals
|
|
17.8.1 Allocating Pseudo-Terminals | | Allocating a pseudo terminal. |
17.8.2 Opening a Pseudo-Terminal Pair | | How to open both sides of a
pseudo-terminal in a single operation. |
|
Syslog
|
|
18.1 Overview of Syslog | | Overview of a system's Syslog facility |
18.2 Submitting Syslog Messages | | Functions to submit messages to Syslog |
|
Submitting Syslog Messages
|
|
18.2.1 openlog | | Open connection to Syslog |
18.2.2 syslog, vsyslog | | Submit message to Syslog |
18.2.3 closelog | | Close connection to Syslog |
18.2.4 setlogmask | | Cause certain messages to be ignored |
18.2.5 Syslog Example | | Example of all of the above |
|
Mathematics
|
|
19.1 Predefined Mathematical Constants | | Precise numeric values for often-used
constants. |
19.2 Trigonometric Functions | | Sine, cosine, tangent, and friends. |
19.3 Inverse Trigonometric Functions | | Arcsine, arccosine, etc. |
19.4 Exponentiation and Logarithms | | Also pow and sqrt. |
19.5 Hyperbolic Functions | | sinh, cosh, tanh, etc. |
19.6 Special Functions | | Bessel, gamma, erf. |
19.7 Known Maximum Errors in Math Functions | | |
19.8 Pseudo-Random Numbers | | Functions for generating pseudo-random
numbers. |
19.9 Is Fast Code or Small Code preferred? | | Fast code or small code. |
|
Pseudo-Random Numbers
|
|
19.8.1 ISO C Random Number Functions | | rand and friends. |
19.8.2 BSD Random Number Functions | | random and friends. |
19.8.3 SVID Random Number Function | | drand48 and friends. |
|
Arithmetic
|
|
20.1 Integers | | Basic integer types and concepts |
20.2 Integer Division | | Integer division with guaranteed rounding. |
20.3 Floating Point Numbers | | Basic concepts. IEEE 754. |
20.4 Floating-Point Number Classification Functions | | The five kinds of floating-point number. |
20.5 Errors in Floating-Point Calculations | | When something goes wrong in a calculation. |
20.6 Rounding Modes | | Controlling how results are rounded. |
20.7 Floating-Point Control Functions | | Saving and restoring the FPU's state. |
20.8 Arithmetic Functions | | Fundamental operations provided by the library. |
20.9 Complex Numbers | | The types. Writing complex constants. |
20.10 Projections, Conjugates, and Decomposing of Complex Numbers | | Projection, conjugation, decomposition. |
20.11 Parsing of Numbers | | Converting strings to numbers. |
20.12 Old-fashioned System V number-to-string functions | | An archaic way to convert numbers to strings. |
|
Floating Point Errors
|
|
20.5.1 FP Exceptions | | IEEE 754 math exceptions and how to detect them. |
20.5.2 Infinity and NaN | | Special values returned by calculations. |
20.5.3 Examining the FPU status word | | Checking for exceptions after the fact. |
20.5.4 Error Reporting by Mathematical Functions | | How the math functions report errors. |
|
Arithmetic Functions
|
|
20.8.1 Absolute Value | | Absolute values of integers and floats. |
20.8.2 Normalization Functions | | Extracting exponents and putting them back. |
20.8.3 Rounding Functions | | Rounding floats to integers. |
20.8.4 Remainder Functions | | Remainders on division, precisely defined. |
20.8.5 Setting and modifying single bits of FP values | | Sign bit adjustment. Adding epsilon. |
20.8.6 Floating-Point Comparison Functions | | Comparisons without risk of exceptions. |
20.8.7 Miscellaneous FP arithmetic functions | | Max, min, positive difference, multiply-add. |
|
Parsing of Numbers
|
|
20.11.1 Parsing of Integers | | Functions for conversion of integer values. |
20.11.2 Parsing of Floats | | Functions for conversion of floating-point
values. |
|
Date and Time
|
|
21.1 Time Basics | | Concepts and definitions. |
21.2 Elapsed Time | | Data types to represent elapsed times |
21.3 Processor And CPU Time | | Time a program has spent executing. |
21.4 Calendar Time | | Manipulation of "real" dates and times. |
21.5 Setting an Alarm | | Sending a signal after a specified time. |
21.6 Sleeping | | Waiting for a period of time. |
|
Processor And CPU Time
|
|
21.3.1 CPU Time Inquiry | | The clock function. |
21.3.2 Processor Time Inquiry | | The times function. |
|
Calendar Time
|
|
21.4.1 Simple Calendar Time | | Facilities for manipulating calendar time. |
21.4.2 High-Resolution Calendar | | A time representation with greater precision. |
21.4.3 Broken-down Time | | Facilities for manipulating local time. |
21.4.4 High Accuracy Clock | | Maintaining a high accuracy system clock. |
21.4.5 Formatting Calendar Time | | Converting times to strings. |
21.4.6 Convert textual time and date information back | | Convert textual time and date information back
into broken-down time values. |
21.4.7 Specifying the Time Zone with TZ | | How users specify the time zone. |
21.4.8 Functions and Variables for Time Zones | | Functions to examine or specify the time zone. |
21.4.9 Time Functions Example | | An example program showing use of some of
the time functions. |
|
Parsing Date and Time
|
|
21.4.6.1 Interpret string according to given format | | |
21.4.6.2 A More User-friendly Way to Parse Times and Dates | | User-friendly function to parse data and
time strings. |
|
Resource Usage And Limitation
|
|
22.1 Resource Usage | | Measuring various resources used. |
22.2 Limiting Resource Usage | | Specifying limits on resource usage. |
22.3 Process CPU Priority And Scheduling | | Reading or setting process run priority. |
22.4 Querying memory available resources | | |
22.5 Learn about the processors available | | |
|
Priority
|
|
22.3.1 Absolute Priority | | The first tier of priority. Posix |
22.3.2 Realtime Scheduling | | Scheduling among the process nobility |
22.3.3 Basic Scheduling Functions | | Get/set scheduling policy, priority |
22.3.4 Traditional Scheduling | | Scheduling among the vulgar masses |
|
Traditional Scheduling
|
|
22.3.4.1 Introduction To Traditional Scheduling | | |
22.3.4.2 Functions For Traditional Scheduling | | |
|
Memory Resources
|
|
22.4.1 Overview about traditional Unix memory handling | | |
22.4.2 How to get information about the memory subsystem? | | |
|
Non-Local Exits
|
|
23.1 Introduction to Non-Local Exits | | When and how to use these facilities. |
23.2 Details of Non-Local Exits | | Functions for non-local exits. |
23.3 Non-Local Exits and Signals | | Portability issues. |
23.4 Complete Context Control | | Complete context control a la System V. |
|
Signal Handling
|
|
24.1 Basic Concepts of Signals | | Introduction to the signal facilities. |
24.2 Standard Signals | | Particular kinds of signals with
standard names and meanings. |
24.3 Specifying Signal Actions | | Specifying what happens when a
particular signal is delivered. |
24.4 Defining Signal Handlers | | How to write a signal handler function. |
24.5 Primitives Interrupted by Signals | | Signal handlers affect use of open , |
read , write and other functions.
|
24.6 Generating Signals | | How to send a signal to a process. |
24.7 Blocking Signals | | Making the system hold signals temporarily. |
24.8 Waiting for a Signal | | Suspending your program until a signal
arrives. |
24.9 Using a Separate Signal Stack | | |
24.10 BSD Signal Handling | | Additional functions for backward
compatibility with BSD. |
|
Concepts of Signals
|
|
24.1.1 Some Kinds of Signals | | Some examples of what can cause a signal. |
24.1.2 Concepts of Signal Generation | | Concepts of why and how signals occur. |
24.1.3 How Signals Are Delivered | | Concepts of what a signal does to the
process. |
|
Standard Signals
|
|
24.2.1 Program Error Signals | | Used to report serious program errors. |
24.2.2 Termination Signals | | Used to interrupt and/or terminate the
program. |
24.2.3 Alarm Signals | | Used to indicate expiration of timers. |
24.2.4 Asynchronous I/O Signals | | Used to indicate input is available. |
24.2.5 Job Control Signals | | Signals used to support job control. |
24.2.6 Operation Error Signals | | Used to report operational system errors. |
24.2.7 Miscellaneous Signals | | |
24.2.8 Signal Messages | | Printing a message describing a signal. |
|
Signal Actions
|
|
24.3.1 Basic Signal Handling | | The simple signal function. |
24.3.2 Advanced Signal Handling | | The more powerful sigaction function. |
24.3.3 Interaction of signal and sigaction | | How those two functions interact. |
24.3.4 sigaction Function Example | | An example of using the sigaction function. |
24.3.5 Flags for sigaction | | Specifying options for signal handling. |
24.3.6 Initial Signal Actions | | How programs inherit signal actions. |
|
Defining Handlers
|
|
24.4.1 Signal Handlers that Return | | Handlers that return normally, and what
this means. |
24.4.2 Handlers That Terminate the Process | | How handler functions terminate a program. |
24.4.3 Nonlocal Control Transfer in Handlers | | Nonlocal transfer of control out of a
signal handler. |
24.4.4 Signals Arriving While a Handler Runs | | What happens when signals arrive while
the handler is already occupied. |
24.4.5 Signals Close Together Merge into One | | When a second signal arrives before the
first is handled. |
24.4.6 Signal Handling and Nonreentrant Functions | | Do not call any functions unless you know they
are reentrant with respect to signals. |
24.4.7 Atomic Data Access and Signal Handling | | A single handler can run in the middle of
reading or writing a single object. |
|
Atomic Data Access
|
|
24.4.7.1 Problems with Non-Atomic Access | | A program illustrating interrupted access. |
24.4.7.2 Atomic Types | | Data types that guarantee no interruption. |
24.4.7.3 Atomic Usage Patterns | | Proving that interruption is harmless. |
|
Generating Signals
|
|
24.6.1 Signaling Yourself | | A process can send a signal to itself. |
24.6.2 Signaling Another Process | | Send a signal to another process. |
24.6.3 Permission for using kill | | |
24.6.4 Using kill for Communication | | |
|
Blocking Signals
|
|
24.7.1 Why Blocking Signals is Useful | | The purpose of blocking signals. |
24.7.2 Signal Sets | | How to specify which signals to
block. |
24.7.3 Process Signal Mask | | Blocking delivery of signals to your
process during normal execution. |
24.7.4 Blocking to Test for Delivery of a Signal | | |
24.7.5 Blocking Signals for a Handler | | Blocking additional signals while a
handler is being run. |
24.7.6 Checking for Pending Signals | | |
24.7.7 Remembering a Signal to Act On Later | | 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
|
|
24.8.1 Using pause | | The simple way, using pause . |
24.8.2 Problems with pause | | Why the simple way is often not very good. |
24.8.3 Using sigsuspend | | Reliably waiting for a specific signal. |
|
BSD Signal Handling
|
|
24.10.1 BSD Function to Establish a Handler | | |
24.10.2 BSD Functions for Blocking Signals | | |
|
Program Basics
|
|
25.1 Program Arguments | | Parsing your program's command-line arguments. |
25.4 Environment Variables | | Less direct parameters affecting your program |
25.5 System Calls | | Requesting service from the system |
25.6 Program Termination | | Telling the system you're done; return status |
|
Program Arguments
|
|
25.1.1 Program Argument Syntax Conventions | | By convention, options start with a hyphen. |
25.1.2 Parsing Program Arguments | | Ways to parse program options and arguments. |
|
Parsing Program Arguments
|
|
25.2 Parsing program options using getopt | | |
25.3 Parsing Program Options with Argp | | Parsing program options using argp_parse . |
25.3.12.1 Parsing of Suboptions | | Some programs need more detailed options. |
25.3.13 Parsing of Suboptions Example | | This shows how it could be done for mount . |
|
Environment Variables
|
|
25.4.1 Environment Access | | How to get and set the values of
environment variables. |
25.4.2 Standard Environment Variables | | These environment variables have
standard interpretations. |
|
Program Termination
|
|
25.6.1 Normal Termination | | If a program calls exit , a
process terminates normally. |
25.6.2 Exit Status | | The exit status provides information
about why the process terminated. |
25.6.3 Cleanups on Exit | | A process can run its own cleanup
functions upon normal termination. |
25.6.4 Aborting a Program | | The abort function causes
abnormal program termination. |
25.6.5 Termination Internals | | What happens when a process terminates. |
|
Processes
|
|
26.1 Running a Command | | The easy way to run another program. |
26.2 Process Creation Concepts | | An overview of the hard way to do it. |
26.3 Process Identification | | How to get the process ID of a process. |
26.4 Creating a Process | | How to fork a child process. |
26.5 Executing a File | | How to make a process execute another program. |
26.6 Process Completion | | How to tell when a child process has completed. |
26.7 Process Completion Status | | How to interpret the status value
returned from a child process. |
26.8 BSD Process Wait Functions | | More functions, for backward compatibility. |
26.9 Process Creation Example | | A complete example program. |
|
Job Control
|
|
27.1 Concepts of Job Control | | Jobs can be controlled by a shell. |
27.2 Job Control is Optional | | Not all POSIX systems support job control. |
27.3 Controlling Terminal of a Process | | How a process gets its controlling terminal. |
27.4 Access to the Controlling Terminal | | How processes share the controlling terminal. |
27.5 Orphaned Process Groups | | Jobs left after the user logs out. |
27.6 Implementing a Job Control Shell | | What a shell must do to implement job control. |
27.7 Functions for Job Control | | Functions to control process groups. |
|
Implementing a Shell
|
|
27.6.1 Data Structures for the Shell | | Introduction to the sample shell. |
27.6.2 Initializing the Shell | | What the shell must do to take
responsibility for job control. |
27.6.3 Launching Jobs | | Creating jobs to execute commands. |
27.6.4 Foreground and Background | | Putting a job in foreground of background. |
27.6.5 Stopped and Terminated Jobs | | Reporting job status. |
27.6.6 Continuing Stopped Jobs | | How to continue a stopped job in
the foreground or background. |
27.6.7 The Missing Pieces | | Other parts of the shell. |
|
Functions for Job Control
|
|
27.7.1 Identifying the Controlling Terminal | | Determining the controlling terminal's name. |
27.7.2 Process Group Functions | | Functions for manipulating process groups. |
27.7.3 Functions for Controlling Terminal Access | | Functions for controlling terminal access. |
|
Name Service Switch
|
|
28.1 NSS Basics | | What is this NSS good for. |
28.2 The NSS Configuration File | | Configuring NSS. |
28.3 NSS Module Internals | | How does it work internally. |
28.4 Extending NSS | | What to do to add services or databases. |
|
NSS Configuration File
|
|
28.2.1 Services in the NSS configuration File | | Service names in the NSS configuration. |
28.2.2 Actions in the NSS configuration | | React appropriately to the lookup result. |
28.2.3 Notes on the NSS Configuration File | | Things to take care about while
configuring NSS. |
|
NSS Module Internals
|
|
28.3.1 The Naming Scheme of the NSS Modules | | Construction of the interface function of
the NSS modules. |
28.3.2 The Interface of the Function in NSS Modules | | Programming interface in the NSS module
functions. |
|
Extending NSS
|
|
28.4.1 Adding another Service to NSS | | What is to do to add a new service. |
28.4.2 Internals of the NSS Module Functions | | Guidelines for writing new NSS
service functions. |
|
Users and Groups
|
|
29.1 User and Group IDs | | Each user has a unique numeric ID;
likewise for groups. |
29.2 The Persona of a Process | | The user IDs and group IDs of a process. |
29.3 Why Change the Persona of a Process? | | Why a program might need to change
its user and/or group IDs. |
29.4 How an Application Can Change Persona | | Changing the user and group IDs. |
29.5 Reading the Persona of a Process | | How to examine the user and group IDs. |
|
29.6 Setting the User ID | | Functions for setting the user ID. |
29.7 Setting the Group IDs | | Functions for setting the group IDs. |
|
29.8 Enabling and Disabling Setuid Access | | Turning setuid access on and off. |
29.9 Setuid Program Example | | The pertinent parts of one sample program. |
29.10 Tips for Writing Setuid Programs | | How to avoid granting unlimited access. |
|
29.11 Identifying Who Logged In | | Getting the name of the user who logged in,
or of the real user ID of the current process. |
|
29.12 The User Accounting Database | | Keeping information about users and various
actions in databases. |
|
29.13 User Database | | Functions and data structures for
accessing the user database. |
29.14 Group Database | | Functions and data structures for
accessing the group database. |
29.15 User and Group Database Example | | Example program showing the use of database
inquiry functions. |
29.16 Netgroup Database | | Functions for accessing the netgroup database. |
|
User Accounting Database
|
|
29.12.1 Manipulating the User Accounting Database | | Scanning and modifying the user
accounting database. |
29.12.2 XPG User Accounting Database Functions | | A standardized way for doing the same thing. |
29.12.3 Logging In and Out | | Functions from BSD that modify the user
accounting database. |
|
User Database
|
|
29.13.1 The Data Structure that Describes a User | | What each user record contains. |
29.13.2 Looking Up One User | | How to look for a particular user. |
29.13.3 Scanning the List of All Users | | Scanning the list of all users, one by one. |
29.13.4 Writing a User Entry | | How a program can rewrite a user's record. |
|
Group Database
|
|
29.14.1 The Data Structure for a Group | | What each group record contains. |
29.14.2 Looking Up One Group | | How to look for a particular group. |
29.14.3 Scanning the List of All Groups | | Scanning the list of all groups. |
|
Netgroup Database
|
|
29.16.1 Netgroup Data | | Data in the Netgroup database and where
it comes from. |
29.16.2 Looking up one Netgroup | | How to look for a particular netgroup. |
29.16.3 Testing for Netgroup Membership | | How to test for netgroup membership. |
|
System Management
|
|
30.1 Host Identification | | Determining the name of the machine. |
30.2 Platform Type Identification | | Determining operating system and basic
machine type |
30.3 Controlling and Querying Mounts | | Controlling/querying mounts |
30.4 System Parameters | | Getting and setting various system parameters |
|
Filesystem Handling
|
|
30.3.1 Mount Information | | What is or could be mounted? |
30.3.2 Mount, Unmount, Remount | | Controlling what is mounted and how |
|
Mount Information
|
|
30.3.1.1 The `fstab' file | | |
30.3.1.2 The `mtab' file | | |
30.3.1.3 Other (Non-libc) Sources of Mount Information | | Other (non-libc) sources of mount information |
|
System Configuration
|
|
31.1 General Capacity Limits | | Constants and functions that describe
various process-related limits that have
one uniform value for any given machine. |
31.2 Overall System Options | | Optional POSIX features. |
31.3 Which Version of POSIX is Supported | | Version numbers of POSIX.1 and POSIX.2. |
31.4 Using sysconf | | Getting specific configuration values
of general limits and system options. |
31.5 Minimum Values for General Capacity Limits | | Minimum values for general limits. |
|
31.6 Limits on File System Capacity | | Size limitations that pertain to individual files.
These can vary between file systems
or even from file to file. |
31.7 Optional Features in File Support | | Optional features that some files may support. |
31.8 Minimum Values for File System Limits | | Minimum values for file limits. |
31.9 Using pathconf | | Getting the limit values for a particular file. |
|
31.10 Utility Program Capacity Limits | | Capacity limits of some POSIX.2 utility programs. |
31.11 Minimum Values for Utility Limits | | Minimum allowable values of those limits. |
|
31.12 String-Valued Parameters | | Getting the default search path. |
|
Sysconf
|
|
31.4.1 Definition of sysconf | | Detailed specifications of sysconf . |
31.4.2 Constants for sysconf Parameters | | The list of parameters sysconf can read. |
31.4.3 Examples of sysconf | | How to use sysconf and the parameter
macros properly together. |
|
Cryptographic Functions
|
|
32.1 Legal Problems | | This software can get you locked up, or worse. |
32.2 Reading Passwords | | Prompting the user for a password. |
32.3 Encrypting Passwords | | A one-way function for passwords. |
32.4 DES Encryption | | Routines for DES encryption. |
|
Debugging Support
|
|
33.1 Backtraces | | Obtaining and printing a back trace of the
current stack. |
|
Language Features
|
|
A.1 Explicitly Checking Internal Consistency | | Using assert to abort if
something "impossible" happens. |
A.2 Variadic Functions | | Defining functions with varying numbers
of args. |
A.3 Null Pointer Constant | | The macro NULL . |
A.4 Important Data Types | | Data types for object sizes. |
A.5 Data Type Measurements | | Parameters of data type representations. |
|
Variadic Functions
|
|
A.2.1 Why Variadic Functions are Used | | Reasons for making functions take
variable arguments. |
A.2.2 How Variadic Functions are Defined and Used | | How to define and call variadic functions. |
A.2.3 Example of a Variadic Function | | A complete example. |
|
How Variadic
|
|
A.2.2.1 Syntax for Variable Arguments | | How to make a prototype for a function
with variable arguments. |
A.2.2.2 Receiving the Argument Values | | Steps you must follow to access the
optional argument values. |
A.2.2.3 How Many Arguments Were Supplied | | How to decide whether there are more arguments. |
A.2.2.4 Calling Variadic Functions | | Things you need to know about calling
variable arguments functions. |
A.2.2.5 Argument Access Macros | | Detailed specification of the macros
for accessing variable arguments. |
A.2.3.1 Old-Style Variadic Functions | | The pre-ISO way of defining variadic functions. |
|
Data Type Measurements
|
|
A.5.1 Computing the Width of an Integer Data Type | | How many bits does an integer type hold? |
A.5.2 Range of an Integer Type | | What are the largest and smallest values
that an integer type can hold? |
A.5.3 Floating Type Macros | | Parameters that measure the floating point types. |
A.5.4 Structure Field Offset Measurement | | Getting measurements on structure types. |
|
Floating Type Macros
|
|
A.5.3.1 Floating Point Representation Concepts | | Definitions of terminology. |
A.5.3.2 Floating Point Parameters | | Details of specific macros. |
A.5.3.3 IEEE Floating Point | | The measurements for one common
representation. |
|
Installation
|
|
C.1 Configuring and compiling GNU Libc | | How to compile and test GNU libc. |
C.2 Installing the C Library | | How to install it once you've got it
compiled. |
C.3 Recommended Tools for Compilation | | You'll need these first. |
C.4 Supported Configurations | | What it runs on, what it doesn't. |
C.5 Specific advice for GNU/Linux systems | | |
C.6 Reporting Bugs | | So they'll get fixed. |
|
Maintenance
|
|
D.1 Adding New Functions | | How to add new functions or header files
to the GNU C library. |
D.2 Porting the GNU C Library | | How to port the GNU C library to
a new machine or operating system. |
|
Porting
|
|
D.2.1 Layout of the `sysdeps' Directory Hierarchy | | The layout of the `sysdeps' hierarchy. |
D.2.2 Porting the GNU C Library to Unix Systems | | Porting the library to an average
Unix-like system. |