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