mallocmallocmallocmallocmalloc-Related Functionsgettext family of functions
gettext usesgettext in GUI programsgettextgettextprintf
inetd Daemon
TZgetopt
argp_parse Functionargp_parseargp_help Functionargp_help Functionsysconf
pathconfNext: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is The GNU C Library Reference Manual, for Version 2.20 of the GNU C Library.
| • Introduction: | Purpose of the GNU C Library. | |
| • Error Reporting: | How library functions report errors. | |
| • Memory: | Allocating virtual memory and controlling paging. | |
| • Character Handling: | Character testing and conversion functions. | |
| • String and Array Utilities: | Utilities for copying and comparing strings and arrays. | |
| • Character Set Handling: | Support for extended character sets. | |
| • Locales: | The country and language can affect the behavior of library functions. | |
| • Message Translation: | How to make the program speak the user’s language. | |
| • Searching and Sorting: | General searching and sorting functions. | |
| • Pattern Matching: | Matching shell “globs” and regular expressions. | |
| • I/O Overview: | Introduction to the I/O facilities. | |
| • I/O on 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 IPC mechanism, with networking support. | |
| • Low-Level Terminal Interface: | How to change the characteristics of a terminal device. | |
| • Syslog: | System logging and messaging. | |
| • Mathematics: | Math functions, useful constants, random numbers. | |
| • Arithmetic: | Low level arithmetic functions. | |
| • Date and Time: | Functions for getting the date and time and formatting them nicely. | |
| • Resource Usage And Limitation: | Functions for examining resource usage and getting and setting limits. | |
| • Non-Local Exits: | Jumping out of nested function calls. | |
| • Signal Handling: | How to send, block, and handle signals. | |
| • Program Basics: | Writing the beginning and end of your program. | |
| • Processes: | How to create processes and run other programs. | |
| • Inter-Process Communication: | All about inter-process communication. | |
| • Job Control: | All about process groups and sessions. | |
| • Name Service Switch: | Accessing system databases. | |
| • Users and Groups: | How users are identified and classified. | |
| • System Management: | Controlling the system and getting information about it. | |
| • System Configuration: | Parameters describing operating system limits. | |
| • Cryptographic Functions: | DES encryption and password handling. | |
| • Debugging Support: | Functions to help debugging applications. | |
| • POSIX Threads: | POSIX Threads. | |
| • Internal Probes: | Probes to monitor libc internal behavior. | |
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. | |
| • Installation: | How to install the GNU C Library. | |
| • Maintenance: | How to enhance and port the GNU C Library. | |
| • Platform: | Describe all platform-specific facilities provided. | |
| • Contributors: | Who wrote what parts of the GNU C Library. | |
| • Free Manuals: | Free Software Needs Free Documentation. | |
| • Copying: | The GNU Lesser General Public License says how you can copy and share the GNU C Library. | |
| • 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 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: | What this manual is for and how to use it. | |
| • Standards and Portability: | Standards and sources upon which the GNU C library is based. | |
| • Using the Library: | Some practical uses for the library. | |
| • Roadmap to the Manual: | Overview of the remaining chapters in this manual. | |
Standards and Portability | ||
| • ISO C: | The international standard for the C programming language. | |
| • POSIX: | The ISO/IEC 9945 (aka IEEE 1003) standards for operating systems. | |
| • Berkeley Unix: | BSD and SunOS. | |
| • SVID: | The System V Interface Description. | |
| • XPG: | The X/Open Portability Guide. | |
POSIX | ||
| • POSIX Safety Concepts: | Safety concepts from POSIX. | |
| • Unsafe Features: | Features that make functions unsafe. | |
| • Conditionally Safe Features: | Features that make functions unsafe in the absence of workarounds. | |
| • Other Safety Remarks: | Additional safety features and remarks. | |
Using the Library | ||
| • Header Files: | How to include 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: | Error code macros; all of these expand into integer constant values. | |
| • Error Messages: | Mapping error codes onto error messages. | |
Memory | ||
| • Memory Concepts: | An introduction to concepts and terminology. | |
| • Memory Allocation: | Allocating storage for your program data | |
| • Resizing the Data Segment: | brk, sbrk
| |
| • Locking Pages: | Preventing page faults | |
Memory Allocation | ||
| • Memory Allocation and C: | How to get different kinds of allocation in C. | |
| • Unconstrained Allocation: | The malloc facility allows fully general
dynamic allocation.
| |
| • Allocation Debugging: | Finding memory leaks and not freed memory. | |
| • 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. | |
Unconstrained Allocation | ||
| • Basic Allocation: | Simple use of malloc.
| |
| • Malloc Examples: | Examples of malloc. xmalloc.
| |
| • Freeing after Malloc: | Use free to free a block you
got with malloc.
| |
| • Changing Block Size: | Use realloc to make a block
bigger or smaller.
| |
| • Allocating Cleared Space: | Use calloc to allocate a
block and clear it.
| |
| • Efficiency and Malloc: | Efficiency considerations in use of these functions. | |
| • Aligned Memory Blocks: | Allocating specially aligned memory. | |
| • Malloc Tunable Parameters: | Use mallopt to adjust allocation
parameters.
| |
| • 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.
| |
Allocation Debugging | ||
| • Tracing malloc: | How to install the tracing functionality. | |
| • Using the Memory Debugger: | Example programs excerpts. | |
| • Tips for the Memory Debugger: | Some more or less clever ideas. | |
| • Interpreting the traces: | What do all these lines mean? | |
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: | ||
Variable Size Automatic | ||
| • 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. | |
Locking Pages | ||
| • Why Lock Pages: | Reasons to read this section. | |
| • Locked Memory Details: | Everything you need to know locked memory | |
| • Page Lock Functions: | Here’s how to do it. | |
Character Handling | ||
| • Classification of Characters: | Testing whether characters are letters, digits, punctuation, etc. | |
| • Case Conversion: | Case mapping, and the like. | |
| • Classification of Wide Characters: | Character class determination for wide characters. | |
| • Using Wide Char Classes: | Notes on using the wide character classes. | |
| • Wide Character Case Conversion: | Mapping of wide characters. | |
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. | |
| • strfry: | Function for flash-cooking a string. | |
| • Trivial Encryption: | Obscuring data. | |
| • Encode Binary Data: | Encoding and Decoding of Binary Data. | |
| • Argz and Envz Vectors: | Null-separated string vectors. | |
Argz and Envz Vectors | ||
| • Argz Functions: | Operations on argz vectors. | |
| • Envz Functions: | Additional operations on environment vectors. | |
Character Set Handling | ||
| • Extended Char Intro: | Introduction to Extended Characters. | |
| • Charset Function Overview: | Overview about Character Handling Functions. | |
| • Restartable multibyte conversion: | Restartable multibyte conversion Functions. | |
| • Non-reentrant Conversion: | Non-reentrant Conversion Function. | |
| • Generic Charset Conversion: | Generic Charset Conversion. | |
Restartable multibyte conversion | ||
| • Selecting the Conversion: | Selecting the conversion and its properties. | |
| • Keeping the state: | Representing the state of the conversion. | |
| • Converting a Character: | Converting Single Characters. | |
| • Converting Strings: | Converting Multibyte and Wide Character Strings. | |
| • Multibyte Conversion Example: | A Complete Multibyte Conversion Example. | |
Non-reentrant Conversion | ||
| • Non-reentrant Character Conversion: | Non-reentrant Conversion of Single Characters. | |
| • Non-reentrant String Conversion: | Non-reentrant Conversion of Strings. | |
| • Shift State: | States in Non-reentrant Functions. | |
Generic Charset Conversion | ||
| • Generic Conversion Interface: | Generic Character Set Conversion Interface. | |
| • iconv Examples: | A complete iconv example.
| |
| • Other iconv Implementations: | Some Details about other iconv
Implementations.
| |
| • glibc iconv Implementation: | The iconv Implementation in the GNU C
library.
| |
Locales | ||
| • 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 with library functions. | |
| • Standard Locales: | Locale names available on all systems. | |
| • Locale Names: | Format of system-specific locale names. | |
| • Locale Information: | How to access the information for the locale. | |
| • Formatting Numbers: | A dedicated function to format numbers. | |
| • Yes-or-No Questions: | Check a Response against the locale. | |
Locale Information | ||
| • The Lame Way to Locale Data: | ISO C’s localeconv.
| |
| • The Elegant and Fast Way: | X/Open’s nl_langinfo.
| |
The Lame Way to Locale Data | ||
| • General Numeric: | Parameters for formatting numbers and currency amounts. | |
| • Currency Symbol: | How to print the symbol that identifies an amount of money (e.g. ‘$’). | |
| • Sign of Money Amount: | How to print the (positive or negative) sign for a monetary amount, if one exists. | |
Message Translation | ||
| • Message catalogs a la X/Open: | The catgets family of functions.
| |
| • The Uniforum approach: | The gettext family of functions.
| |
Message catalogs a la X/Open | ||
| • The catgets Functions: | The catgets function family.
| |
| • The message catalog files: | Format of the message catalog files. | |
| • The gencat program: | How to generate message catalogs files which can be used by the functions. | |
| • Common Usage: | How to use the catgets interface.
| |
The Uniforum approach | ||
| • Message catalogs with gettext: | The gettext family of functions.
| |
| • Helper programs for gettext: | Programs to handle message catalogs
for gettext.
| |
Message catalogs with gettext | ||
| • Translation with gettext: | What has to be done to translate a message. | |
| • Locating gettext catalog: | How to determine which catalog to be used. | |
| • Advanced gettext functions: | Additional functions for more complicated situations. | |
| • Charset conversion in gettext: | How to specify the output character set
gettext uses.
| |
| • GUI program problems: | How to use gettext in GUI programs.
| |
| • Using gettextized software: | The possibilities of the user to influence
the way gettext works.
| |
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. | |
| • Hash Search Function: | The hsearch function.
| |
| • Tree Search Function: | The tsearch function.
| |
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. | |
Globbing | ||
| • Calling Glob: | Basic use of glob.
| |
| • Flags for Globbing: | Flags that enable various options in glob.
| |
| • More Flags for Globbing: | GNU specific extensions to glob.
| |
Regular Expressions | ||
| • POSIX Regexp Compilation: | Using regcomp to prepare to match.
| |
| • Flags for POSIX Regexps: | Syntax variations for regcomp.
| |
| • Matching POSIX Regexps: | Using regexec to match the compiled
pattern that you get from regcomp.
| |
| • Regexp Subexpressions: | Finding which parts of the string were matched. | |
| • Subexpression Complications: | Find points of which parts were matched. | |
| • Regexp Cleanup: | Freeing storage; reporting errors. | |
Word Expansion | ||
| • Expansion Stages: | What word expansion does to a string. | |
| • Calling Wordexp: | How to call wordexp.
| |
| • Flags for Wordexp: | Options you can enable in wordexp.
| |
| • Wordexp Example: | A sample program that does word expansion. | |
| • Tilde Expansion: | Details of how tilde expansion works. | |
| • Variable Substitution: | Different types of variable substitution. | |
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 C 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. | |
| • Streams and Threads: | Issues with streams in threaded programs. | |
| • Streams and I18N: | Streams in internationalized applications. | |
| • 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. | |
| • Block Input/Output: | Input and output operations on blocks of data. | |
| • Formatted Output: | printf and related functions.
| |
| • Customizing Printf: | You can define new conversion specifiers for
printf and friends.
| |
| • Formatted Input: | scanf and related functions.
| |
| • EOF and Errors: | How you can tell if an I/O error happens. | |
| • Error Recovery: | What you can do about errors. | |
| • Binary Streams: | Some systems distinguish between text files and binary files. | |
| • File Positioning: | About random-access streams. | |
| • Portable Positioning: | Random access on peculiar ISO C systems. | |
| • Stream Buffering: | How to control buffering of streams. | |
| • Other Kinds of Streams: | Streams that do not necessarily correspond to an open file. | |
| • Formatted Messages: | Print strictly formatted messages. | |
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 and what they do. | |
| • Integer Conversions: | Details about formatting of integers. | |
| • Floating-Point Conversions: | Details about formatting of floating-point numbers. | |
| • Other Output Conversions: | Details about formatting of strings, characters, pointers, and the like. | |
| • Formatted Output Functions: | Descriptions of the actual functions. | |
| • Dynamic Output: | Functions that allocate memory for the output. | |
| • Variable Arguments Output: | vprintf and friends.
| |
| • Parsing a Template String: | What kinds of args does a given template call for? | |
| • Example of Parsing: | Sample program using parse_printf_format.
| |
Customizing Printf | ||
| • Registering New Conversions: | Using register_printf_function
to register a new output conversion.
| |
| • Conversion Specifier Options: | The handler must be able to get the options specified in the template when it is called. | |
| • Defining the Output Handler: | Defining the handler and arginfo
functions that are passed as arguments
to register_printf_function.
| |
| • Printf Extension Example: | How to define a printf
handler function.
| |
| • Predefined Printf Handlers: | Predefined printf handlers.
| |
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. | |
| • Dynamic String Input: | String conversions that malloc the buffer.
| |
| • 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: | Streams that get data from or put data in a string or memory buffer. | |
| • Custom Streams: | Defining your own streams with an arbitrary input data source and/or output data sink. | |
Custom Streams | ||
| • Streams and Cookies: | The cookie records where to fetch or store data that is read or written. | |
| • Hook Functions: | How you should define the four hook functions that a custom stream needs. | |
Formatted Messages | ||
| • Printing Formatted Messages: | The fmtmsg function.
| |
| • Adding Severity Classes: | Add more severity classes. | |
| • Example: | How to use fmtmsg and addseverity.
| |
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. | |
| • Scatter-Gather: | Fast I/O to discontinuous buffers. | |
| • Memory-mapped I/O: | Using files like memory. | |
| • Waiting for I/O: | How to check for input or output on multiple file descriptors. | |
| • Synchronizing I/O: | Making sure all I/O actions completed. | |
| • Asynchronous I/O: | Perform I/O in parallel. | |
| • Control Operations: | Various other operations on file descriptors. | |
| • Duplicating Descriptors: | Fcntl commands for duplicating file 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. | |
| • Open File Description Locks: | Fcntl commands for implementing open file description locking. | |
| • Open File Description Locks Example: | An example of open file description lock usage | |
| • Interrupt Input: | Getting an asynchronous signal when input arrives. | |
| • IOCTLs: | Generic I/O Control operations. | |
Stream/Descriptor Precautions | ||
| • Linked Channels: | Dealing with channels sharing a file position. | |
| • Independent Channels: | Dealing with separately opened, unlinked channels. | |
| • Cleaning Streams: | Cleaning a stream makes it safe to use another channel. | |
Asynchronous I/O | ||
| • Asynchronous Reads/Writes: | Asynchronous Read and Write Operations. | |
| • Status of AIO Operations: | Getting the Status of AIO Operations. | |
| • Synchronizing AIO Operations: | Getting into a consistent state. | |
| • Cancel AIO Operations: | Cancellation of AIO Operations. | |
| • Configuration of AIO: | How to optimize the AIO implementation. | |
File Status Flags | ||
| • Access Modes: | Whether the descriptor can read or write. | |
| • Open-time Flags: | Details of open.
| |
| • Operating Modes: | Special modes to control I/O operations. | |
| • Getting File Status Flags: | Fetching and changing these flags. | |
File System Interface | ||
| • Working Directory: | This is used to resolve relative file names. | |
| • Accessing Directories: | Finding out what files a directory contains. | |
| • Working with Directory Trees: | Apply actions to all files or a selectable subset of a directory hierarchy. | |
| • 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. | |
| • Temporary Files: | Naming and creating temporary 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. | |
| • Scanning Directory Content: | Get entries for user selected subset of contents in given directory. | |
| • Simple Directory Lister Mark II: | Revised version of the program. | |
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. | |
| • File Size: | Manually changing the size 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 process. | |
| • FIFO Special Files: | Making a FIFO special file. | |
| • Pipe Atomicity: | When pipe (or FIFO) I/O is atomic. | |
Sockets | ||
| • Socket Concepts: | Basic concepts you need to know about. | |
| • Communication Styles: | Stream communication, datagrams and other styles. | |
| • Socket Addresses: | How socket names (“addresses”) work. | |
| • Interface Naming: | Identifying specific network interfaces. | |
| • Local Namespace: | Details about the local namespace. | |
| • Internet Namespace: | Details about the Internet namespace. | |
| • Misc Namespaces: | Other namespaces not documented fully here. | |
| • Open/Close Sockets: | Creating sockets and destroying them. | |
| • Connections: | Operations on sockets with connection state. | |
| • Datagrams: | Operations on datagram sockets. | |
| • Inetd: | Inetd is a daemon that starts servers on request. The most convenient way to write a server is to make it work with Inetd. | |
| • 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. | |
Local Namespace | ||
| • Concepts: | What you need to understand. | |
| • Details: | Address format, symbolic names, etc. | |
| • Example: | Example of creating a socket. | |
Internet Namespace | ||
| • Internet Address Formats: | How socket addresses are specified in the Internet namespace. | |
| • Host Addresses: | All about host addresses of Internet host. | |
| • Ports: | Internet port numbers. | |
| • 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. | |
| • Protocols Database: | Referring to protocols by name. | |
| • 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 program: a 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 send.
| |
| • Receiving Data: | Reading data with recv.
| |
| • 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 socket in the local namespace. | |
| • Example Receiver: | Another program, that receives those packets. | |
Inetd | ||
| • Inetd Servers: | ||
| • Configuring Inetd: | ||
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 details of terminal I/O: echoing, signals, editing. Posix. | |
| • BSD Terminal Modes: | BSD compatible terminal mode setting | |
| • Line Control: | Sending break sequences, clearing terminal buffers … | |
| • Noncanon Example: | How to read single characters without echo. | |
| • Pseudo-Terminals: | How to open a pseudo-terminal. | |
Terminal Modes | ||
| • Mode Data Types: | The data type struct termios and
related types.
| |
| • Mode Functions: | Functions to read and set the terminal attributes. | |
| • Setting Modes: | The right way to set terminal 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: | Special characters that terminate lines and delete text, and other editing functions. | |
| • Signal Characters: | Special characters that send or raise signals to or for certain classes of processes. | |
| • Start/Stop Characters: | Special characters that suspend or resume suspended output. | |
| • Other Special: | Other special characters for BSD systems: they can discard output, and print status. | |
Pseudo-Terminals | ||
| • Allocation: | Allocating a pseudo terminal. | |
| • Pseudo-Terminal Pairs: | How to open both sides of a pseudo-terminal in a single operation. | |
Syslog | ||
| • Overview of Syslog: | Overview of a system’s Syslog facility | |
| • Submitting Syslog Messages: | Functions to submit messages to Syslog | |
Submitting Syslog Messages | ||
| • openlog: | Open connection to Syslog | |
| • syslog; vsyslog: | Submit message to Syslog | |
| • closelog: | Close connection to Syslog | |
| • setlogmask: | Cause certain messages to be ignored | |
| • Syslog Example: | Example of all of the above | |
Mathematics | ||
| • Mathematical Constants: | Precise numeric values for often-used constants. | |
| • Trig Functions: | Sine, cosine, tangent, and friends. | |
| • Inverse Trig Functions: | Arcsine, arccosine, etc. | |
| • Exponents and Logarithms: | Also pow and sqrt. | |
| • Hyperbolic Functions: | sinh, cosh, tanh, etc. | |
| • Special Functions: | Bessel, gamma, erf. | |
| • Errors in Math Functions: | Known Maximum Errors in Math Functions. | |
| • Pseudo-Random Numbers: | Functions for generating pseudo-random numbers. | |
| • FP Function Optimizations: | Fast code or small code. | |
Pseudo-Random Numbers | ||
| • ISO Random: | rand and friends.
| |
| • BSD Random: | random and friends.
| |
| • SVID Random: | drand48 and friends.
| |
Arithmetic | ||
| • Integers: | Basic integer types and concepts | |
| • Integer Division: | Integer division with guaranteed rounding. | |
| • Floating Point Numbers: | Basic concepts. IEEE 754. | |
| • Floating Point Classes: | The five kinds of floating-point number. | |
| • Floating Point Errors: | When something goes wrong in a calculation. | |
| • Rounding: | Controlling how results are rounded. | |
| • Control Functions: | Saving and restoring the FPU’s state. | |
| • Arithmetic Functions: | Fundamental operations provided by the library. | |
| • Complex Numbers: | The types. Writing complex constants. | |
| • Operations on Complex: | Projection, conjugation, decomposition. | |
| • Parsing of Numbers: | Converting strings to numbers. | |
| • System V Number Conversion: | An archaic way to convert numbers to strings. | |
Floating Point Errors | ||
| • FP Exceptions: | IEEE 754 math exceptions and how to detect them. | |
| • Infinity and NaN: | Special values returned by calculations. | |
| • Status bit operations: | Checking for exceptions after the fact. | |
| • Math Error Reporting: | How the math functions report errors. | |
Arithmetic Functions | ||
| • Absolute Value: | Absolute values of integers and floats. | |
| • Normalization Functions: | Extracting exponents and putting them back. | |
| • Rounding Functions: | Rounding floats to integers. | |
| • Remainder Functions: | Remainders on division, precisely defined. | |
| • FP Bit Twiddling: | Sign bit adjustment. Adding epsilon. | |
| • FP Comparison Functions: | Comparisons without risk of exceptions. | |
| • Misc FP Arithmetic: | Max, min, positive difference, multiply-add. | |
Parsing of Numbers | ||
| • Parsing of Integers: | Functions for conversion of integer values. | |
| • Parsing of Floats: | Functions for conversion of floating-point values. | |
Date and Time | ||
| • Time Basics: | Concepts and definitions. | |
| • Elapsed Time: | Data types to represent elapsed times | |
| • Processor And CPU Time: | Time a program has spent executing. | |
| • 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 And CPU Time | ||
| • CPU Time: | The clock function.
| |
| • Processor 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. | |
| • High Accuracy Clock: | Maintaining a high accuracy system clock. | |
| • Formatting Calendar Time: | Converting times to strings. | |
| • Parsing Date and Time: | Convert textual time and date information back into broken-down time values. | |
| • 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. | |
Parsing Date and Time | ||
| • Low-Level Time String Parsing: | Interpret string according to given format. | |
| • General Time String Parsing: | User-friendly function to parse data and time strings. | |
Resource Usage And Limitation | ||
| • Resource Usage: | Measuring various resources used. | |
| • Limits on Resources: | Specifying limits on resource usage. | |
| • Priority: | Reading or setting process run priority. | |
| • Memory Resources: | Querying memory available resources. | |
| • Processor Resources: | Learn about the processors available. | |
Priority | ||
| • Absolute Priority: | The first tier of priority. Posix | |
| • Realtime Scheduling: | Scheduling among the process nobility | |
| • Basic Scheduling Functions: | Get/set scheduling policy, priority | |
| • Traditional Scheduling: | Scheduling among the vulgar masses | |
| • CPU Affinity: | Limiting execution to certain CPUs | |
Traditional Scheduling | ||
| • Traditional Scheduling Intro: | ||
| • Traditional Scheduling Functions: | ||
Memory Resources | ||
| • Memory Subsystem: | Overview about traditional Unix memory handling. | |
| • Query Memory Parameters: | How to get information about the memory subsystem? | |
Non-Local Exits | ||
| • Intro: | When and how to use these facilities. | |
| • Details: | Functions for non-local exits. | |
| • Non-Local Exits and Signals: | Portability issues. | |
| • System V contexts: | Complete context control a la System V. | |
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. | |
| • Interrupted Primitives: | Signal handlers affect use of open,
read, write and other functions.
| |
| • 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. | |
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. | |
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 Handlers | ||
| • Handler Returns: | Handlers that return normally, and what this means. | |
| • Termination in Handler: | How handler functions terminate a program. | |
| • Longjmp in Handler: | Nonlocal transfer of control out of a signal handler. | |
| • Signals in Handler: | What happens when signals arrive while the handler is already occupied. | |
| • Merged Signals: | When a second signal arrives before the first is handled. | |
| • Nonreentrancy: | Do not call any functions unless you know they are reentrant with respect to signals. | |
| • Atomic Data Access: | A single handler can run in the middle of reading or writing a single object. | |
Atomic Data Access | ||
| • Non-atomic Example: | A program illustrating interrupted access. | |
| • Types: | Data types that guarantee no interruption. | |
| • Usage: | Proving that interruption is harmless. | |
Generating Signals | ||
| • Signaling Yourself: | A process can send a signal to itself. | |
| • 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. | |
Program Basics | ||
| • Program Arguments: | Parsing your program’s command-line arguments | |
| • Environment Variables: | Less direct parameters affecting your program | |
| • Auxiliary Vector: | Least direct parameters affecting your program | |
| • System Calls: | Requesting service from the system | |
| • Program Termination: | Telling the system you’re done; return status | |
Program Arguments | ||
| • Argument Syntax: | By convention, options start with a hyphen. | |
| • Parsing Program Arguments: | Ways to parse program options and arguments. | |
Parsing Program Arguments | ||
| • Getopt: | Parsing program options using getopt.
| |
| • Argp: | Parsing program options using argp_parse.
| |
| • Suboptions: | Some programs need more detailed options. | |
| • Suboptions Example: | This shows how it could be done for mount.
| |
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, a
process terminates normally.
| |
| • Exit Status: | The exit status provides information
about why the process terminated.
| |
| • Cleanups on Exit: | A process can run its own cleanup functions upon normal termination. | |
| • Aborting a Program: | The abort function causes
abnormal program termination.
| |
| • Termination Internals: | What happens when a process terminates. | |
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 process 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. | |
Inter-Process Communication | ||
| • Semaphores: | Support for creating and managing semaphores | |
Job Control | ||
| • Concepts of Job Control: | Jobs can be controlled by a shell. | |
| • 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 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. | |
Name Service Switch | ||
| • NSS Basics: | What is this NSS good for. | |
| • NSS Configuration File: | Configuring NSS. | |
| • NSS Module Internals: | How does it work internally. | |
| • Extending NSS: | What to do to add services or databases. | |
NSS Configuration File | ||
| • Services in the NSS configuration: | Service names in the NSS configuration. | |
| • Actions in the NSS configuration: | React appropriately to the lookup result. | |
| • Notes on NSS Configuration File: | Things to take care about while configuring NSS. | |
NSS Module Internals | ||
| • NSS Module Names: | Construction of the interface function of the NSS modules. | |
| • NSS Modules Interface: | Programming interface in the NSS module functions. | |
Extending NSS | ||
| • Adding another Service to NSS: | What is to do to add a new service. | |
| • NSS Module Function Internals: | Guidelines for writing new NSS service functions. | |
Users and Groups | ||
| • User and Group IDs: | Each user has a unique numeric ID; likewise for groups. | |
| • 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: | Changing the user and group IDs. | |
| • Reading Persona: | How to examine the user and group IDs. | |
| • Setting User ID: | Functions for setting the user ID. | |
| • Setting Groups: | Functions for setting the group IDs. | |
| • Enable/Disable Setuid: | Turning setuid access on and off. | |
| • Setuid Program Example: | The pertinent parts of one sample program. | |
| • Tips for Setuid: | How to avoid granting unlimited access. | |
| • Who Logged In: | Getting the name of the user who logged in, or of the real user ID of the current process. | |
| • User Accounting Database: | Keeping information about users and various actions in databases. | |
| • 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 the use of database inquiry functions. | |
| • Netgroup Database: | Functions for accessing the netgroup database. | |
User Accounting Database | ||
| • Manipulating the Database: | Scanning and modifying the user accounting database. | |
| • XPG Functions: | A standardized way for doing the same thing. | |
| • Logging In and Out: | Functions from BSD that modify the user accounting database. | |
User Database | ||
| • User Data Structure: | What each user record contains. | |
| • Lookup User: | How to look for a particular user. | |
| • Scanning All Users: | Scanning the list of all users, one by one. | |
| • Writing a User Entry: | How a program can rewrite a user’s record. | |
Group Database | ||
| • Group Data Structure: | What each group record contains. | |
| • Lookup Group: | How to look for a particular group. | |
| • Scanning All Groups: | Scanning the list of all groups. | |
Netgroup Database | ||
| • Netgroup Data: | Data in the Netgroup database and where it comes from. | |
| • Lookup Netgroup: | How to look for a particular netgroup. | |
| • Netgroup Membership: | How to test for netgroup membership. | |
System Management | ||
| • Host Identification: | Determining the name of the machine. | |
| • Platform Type: | Determining operating system and basic machine type | |
| • Filesystem Handling: | Controlling/querying mounts | |
| • System Parameters: | Getting and setting various system parameters | |
Filesystem Handling | ||
| • Mount Information: | What is or could be mounted? | |
| • Mount-Unmount-Remount: | Controlling what is mounted and how | |
Mount Information | ||
| • fstab: | The fstab file | |
| • mtab: | The mtab file | |
| • Other Mount Information: | Other (non-libc) sources of mount information | |
System Configuration | ||
| • 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 that pertain to 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 some POSIX.2 utility programs. | |
| • Utility Minimums: | Minimum allowable values of those limits. | |
| • String Parameters: | Getting the default search path. | |
Sysconf | ||
| • Sysconf Definition: | Detailed specifications of sysconf.
| |
| • Constants for Sysconf: | The list of parameters sysconf can read.
| |
| • Examples of Sysconf: | How to use sysconf and the parameter
macros properly together.
| |
Cryptographic Functions | ||
| • Legal Problems: | This software can get you locked up, or worse. | |
| • getpass: | Prompting the user for a password. | |
| • crypt: | A one-way function for passwords. | |
| • DES Encryption: | Routines for DES encryption. | |
Debugging Support | ||
| • Backtraces: | Obtaining and printing a back trace of the current stack. | |
POSIX Threads | ||
| • Thread-specific Data: | Support for creating and managing thread-specific data | |
| • Non-POSIX Extensions: | Additional functions to extend POSIX Thread functionality | |
Non-POSIX Extensions | ||
| • Default Thread Attributes: | Setting default attributes for threads in a process. | |
Internal Probes | ||
| • Memory Allocation Probes: | Probes in the memory allocation subsystem | |
| • Mathematical Function Probes: | Probes in mathematical functions | |
| • Non-local Goto Probes: | Probes in setjmp and longjmp | |
Language Features | ||
| • Consistency Checking: | Using assert to abort if
something “impossible” happens.
| |
| • Variadic Functions: | Defining functions with varying numbers of args. | |
| • 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. | |
| • Variadic Example: | A complete example. | |
How Variadic | ||
| • 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. | |
| • Argument Macros: | Detailed specification of the macros for accessing variable arguments. | |
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 the floating point types. | |
| • Structure Measurement: | Getting measurements on structure types. | |
Floating Type Macros | ||
| • Floating Point Concepts: | Definitions of terminology. | |
| • Floating Point Parameters: | Details of specific macros. | |
| • IEEE Floating Point: | The measurements for one common representation. | |
Installation | ||
| • Configuring and compiling: | How to compile and test GNU libc. | |
| • Running make install: | How to install it once you’ve got it compiled. | |
| • Tools for Compilation: | You’ll need these first. | |
| • Linux: | Specific advice for GNU/Linux systems. | |
| • Reporting Bugs: | So they’ll get fixed. | |
Maintenance | ||
| • Source Layout: | How to add new functions or header files to the GNU C Library. | |
| • Porting: | How to port the GNU C Library to a new machine or operating system. | |
Source Layout | ||
| • Platform: | Adding platform-specific features. | |
Porting | ||
| • Hierarchy Conventions: | The layout of the sysdeps hierarchy. | |
| • Porting to Unix: | Porting the library to an average Unix-like system. | |
Platform | ||
| • PowerPC: | Facilities Specific to the PowerPC Architecture | |
Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]