下一个 >


 

The GNU C Library Reference ManualTable of Contents1 Introduction 12 Error Reporting 133 Virtual Memory Allocation And Paging 304 Character Handling 645 String and Array Utilities 726 Character Set Handling 1087 Locales and Internationalization 1498 Message Translation 1679 Searching and Sorting 19110 Pattern Matching 20011 Input/Output Overview 22012 Input/Output on Streams 22513 Low-Level Input/Output 29514 File System Interface 34215 Pipes and FIFOs 38316 Sockets 38817 Low-Level Terminal Interface 43218 Syslog 45819 Mathematics 46520 Arithmetic Functions 49621 Date and Time 52722 Resource Usage And Limitation 56023 Non-Local Exits 58024 Signal Handling 58925 The Basic Program/System Interface 63326 Processes 67527 Job Control 68628 System Databases and Name Service Switch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70529 Users and Groups 71430 System Management 74131 System Configuration Parameters 75732 DES Encryption and Password Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77733 Debugging support 784Appendix A C Language Facilities in theAppendix B Summary of Library Facilities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802Appendix D Library Maintenance 913Appendix E Contributors to the GNU C Library 920. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925Appendix H GNU Free Documentation License. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934Concept Index 9411 Introduction1.1 Getting Started1.2 Standards and Portability1.2.1 ISO C1.2.2 POSIX (The Portable Operating System Interface)1.2.3 Berkeley Unix1.2.4 SVID (The System V Interface Description)1.2.5 XPG (The X/Open Portability Guide)1.3 Using the Library1.3.1 Header Files1.3.2 Macro Definitions of Functions1.3.3 Reserved Names1.3.4 Feature Test Macros1.4 Roadmap to the Manual2 Error Reporting2.1 Checking for Errors2.2 Error Codesint ESRCHint EINTRint EIOint ENXIOint ENOTDIRint EISDIRint EFBIGint ENOSPCint ESPIPEint EROFSint ENOTSOCKint EMSGSIZEint EPROTOTYPEint ENOPROTOOPTint ESOCKTNOSUPPORTint EOPNOTSUPPint EPFNOSUPPORTint EAFNOSUPPORTint ENETDOWNint ENETUNREACHint ENETRESETint ECONNABORTEDint ECONNRESETint ESHUTDOWNint ETOOMANYREFSint ETIMEDOUTint EHOSTDOWNint EHOSTUNREACHint ENOTEMPTYint EUSERSint EDQUOTint ESTALEint EBADRPCint ERPCMISMATCHint EPROGUNAVAILint EPROGMISMATCHint EPROCUNAVAILint ENOLCKint EAUTHint ENEEDAUTHint ENOSYSint ENOTNAM int ENAVAIL int EISNAM int EREMOTEIO int ENOMEDIUM3 Virtual Memory Allocation And Paging3.1 Process Memory Concepts3.2 Allocating Storage For Program Data3.2.1 Memory Allocation in C Programs3.2.1.1 Dynamic Memory Allocation3.2.2 Unconstrained Allocation3.2.2.1 Basic Memory Allocation3.2.2.3 Freeing Memory Allocated with malloc3.2.2.4 Changing the Size of a Block3.2.2.5 Allocating Cleared Space3.2.2.6 Efficiency Considerations for malloc3.2.2.7 Allocating Aligned Memory Blocks3.2.2.8 Malloc Tunable Parameters3.2.2.9 Heap Consistency Checking3.2.2.10 Memory Allocation Hooks3.2.2.11 Statistics for Memory Allocation with malloc3.2.2.12 Summary of malloc-Related Functions3.2.3 Allocation Debugging3.2.3.1 How to install the tracing functionality3.2.3.2 Example program excerpts3.2.3.3 Some more or less clever ideas3.2.3.4 Interpreting the traces3.2.4 Obstacks3.2.4.1 Creating Obstacks3.2.4.2 Preparing for Using Obstacks3.2.4.3 Allocation in an Obstack3.2.4.4 Freeing Objects in an Obstack3.2.4.5 Obstack Functions and Macros3.2.4.6 Growing Objects3.2.4.7 Extra Fast Growing Objects3.2.4.8 Status of an Obstack3.2.4.9 Alignment of Data in Obstacks3.2.4.10 Obstack Chunks3.2.4.11 Summary of Obstack Functions3.2.5 Automatic Storage with Variable Size3.2.5.3 Disadvantages of alloca3.2.5.4 GNU C Variable-Size Arrays3.3 Resizing the Data Segment3.4 Locking Pages3.4.1 Why Lock Pages3.4.2 Locked Memory Details3.4.3 Functions To Lock And Unlock Pages4 Character Handling4.1 Classification of Characters4.2 Case Conversion4.3 Character class determination for wide characters4.4 Notes on using the wide character classes4.5 Mapping of wide characters.5 String and Array Utilities5.1 Representation of Strings5.2 String and Array Conventions5.3 String Length5.4 Copying and Concatenationsize )size )wfrom )size )wfrom )size )wfrom )size )5.5 String/Array Comparison5.6 Collation Functionssize )size )5.7 Search Functions5.7.1 Compatibility String Search Functions5.8 Finding Tokens in a Stringdelimiters )5.9 strfry5.10 Trivial Encryption5.11 Encode Binary Data5.12 Argz and Envz Vectors5.12.1 Argz Functions5.12.2 Envz Functions6 Character Set Handling6.1 Introduction to Extended Characters6.2 Overview about Character Handling Functions6.3 Restartable Multibyte Conversion Functions6.3.1 Selecting the conversion and its properties6.3.2 Representing the state of the conversion6.3.3 Converting Single Characters6.3.4 Converting Multibyte and Wide Character Strings6.3.5 A Complete Multibyte Conversion Example6.4 Non-reentrant Conversion Function6.4.1 Non-reentrant Conversion of Single Characters6.4.2 Non-reentrant Conversion of Strings6.4.3 States in Non-reentrant Functions6.5 Generic Charset Conversion6.5.1 Generic Character Set Conversion Interface6.5.2 A complete iconv example6.5.3 Some Details about other iconv Implementations6.5.4 The iconv Implementation in the GNU C library6.5.4.2 Finding the conversion path in iconv6.5.4.3 iconv module data structures6.5.4.4 iconv module interfaces7 Locales and Internationalization7.1 What Effects a Locale Has7.2 Choosing a Locale7.3 Categories of Activities that Locales Affect7.4 How Programs Set the Locale7.5 Standard Locales7.6 Accessing Locale Information7.6.1.1 Generic Numeric Formatting Parameters7.6.1.2 Printing the Currency Symbol7.6.1.3 Printing the Sign of a Monetary Amount7.6.2 Pinpoint Access to Locale Data7.7 A dedicated function to format numbers7.8 Yes-or-No Questions8 Message Translation8.1 X/Open Message Catalog Handling8.1.2 Format of the message catalog files8.1.3 Generate Message Catalogs files8.1.4.1 Not using symbolic names8.1.4.2 Using symbolic names8.1.4.3 How does to this allow to develop8.2 The Uniforum approach to Message Translation8.2.1.1 What has to be done to translate a message?8.2.1.2 How to determine which catalog to be used8.2.1.3 Additional functions for more complicated situationsThe problem of plural forms8.2.1.4 How to specify the output character set gettext uses8.2.1.5 How to use gettext in GUI programs8.2.2 Programs to handle message catalogs for gettext9 Searching and Sorting9.1 Defining the Comparison Function9.2 Array Search Function9.3 Array Sort Functioncompare )9.4 Searching and Sorting Examplecompar )compar )compar )10 Pattern Matching10.1 Wildcard Matching10.2 Globbing10.2.2 Flags for Globbing10.2.3 More Flags for Globbing10.3 Regular Expression Matching10.3.1 POSIX Regular Expression Compilation10.3.2 Flags for POSIX Regular Expressions10.3.3 Matching a Compiled POSIX Regular Expression10.3.4 Match Results with Subexpressions10.3.5 Complications in Subexpression Matching10.3.6 POSIX Regexp Matching Cleanup10.4 Shell-Style Word Expansion10.4.1 The Stages of Word Expansion10.4.3 Flags for Word Expansion10.4.5 Details of Tilde Expansion10.4.6 Details of Variable Substitution11 Input/Output Overview11.1 Input/Output Concepts11.1.1 Streams and File Descriptors11.1.2 File Position11.2 File Names11.2.1 Directories11.2.2 File Name Resolution11.2.3 File Name Errors11.2.4 Portability of File Names12 Input/Output on Streams12.1 StreamsFILE12.2 Standard Streams12.3 Opening Streams12.4 Closing Streams12.5 Streams and Threads12.6 Streams in Internationalized Applications12.7 Simple Output by Characters or Lines12.8 Character Input12.9 Line-Oriented Input12.10 Unreading12.10.1 What Unreading Means12.10.2 Using ungetc To Do Unreading12.11 Block Input/Output12.12 Formatted Output12.12.1 Formatted Output Basics12.12.2 Output Conversion Syntax12.12.3 Table of Output Conversions12.12.4 Integer Conversions12.12.5 Floating-Point Conversions12.12.6 Other Output Conversions12.12.7 Formatted Output Functions12.12.8 Dynamically Allocating Formatted Output12.12.9 Variable Arguments Output Functions12.12.10 Parsing a Template String12.12.11 Example of Parsing a Template String12.13.1 Registering New Conversions12.13.2 Conversion Specifier Options12.13.3 Defining the Output Handler12.14 Formatted Input12.14.1 Formatted Input Basics12.14.2 Input Conversion Syntax12.14.3 Table of Input Conversions12.14.4 Numeric Input Conversions12.14.5 String Input Conversions12.14.6 Dynamically Allocating String Conversions12.14.7 Other Input Conversions12.14.8 Formatted Input Functions12.14.9 Variable Arguments Input Functions12.15 End-Of-File and Errors12.16 Recovering from errors12.17 Text and Binary Streams12.18 File Positioning12.19 Portable File-Position Functions12.20 Stream Buffering12.20.1 Buffering Concepts12.20.2 Flushing Buffers12.20.3 Controlling Which Kind of Buffering12.21 Other Kinds of Streams12.21.1 String Streams12.21.2 Obstack Streams12.21.3 Programming Your Own Custom Streams12.21.3.1 Custom Streams and Cookies12.21.3.2 Custom Stream Hook Functions12.22 Formatted Messages12.22.1 Printing Formatted Messages12.22.2 Adding Severity Classes13 Low-Level Input/Output13.1 Opening and Closing Files13.2 Input and Output Primitivesoffset )offset )13.3 Setting the File Position of a Descriptor13.4 Descriptors and Streams13.5 Dangers of Mixing Streams and Descriptors13.5.1 Linked Channels13.5.2 Independent Channels13.5.3 Cleaning Streams13.6 Fast Scatter-Gather I/Ostruct iovec13.7 Memory-mapped I/Oflag )13.8 Waiting for Input or Output13.9 Synchronizing I/O operations13.10 Perform I/O Operations in Parallel13.10.1 Asynchronous Read and Write Operations13.10.2 Getting the Status of AIO Operations13.10.3 Getting into a Consistent State13.10.4 Cancellation of AIO Operations13.10.5 How to optimize the AIO implementation13.11 Control Operations on Files13.12 Duplicating Descriptors13.13 File Descriptor Flags13.14 File Status Flags13.14.1 File Access Modes13.14.2 Open-time Flags13.14.3 I/O Operating Modes13.14.4 Getting and Setting File Status Flags13.15 File Locks13.16 Interrupt-Driven Input13.17 Generic I/O Control operations14 File System Interface14.1 Working Directory14.2 Accessing Directories14.2.1 Format of a Directory Entry14.2.2 Opening a Directory Stream14.2.3 Reading and Closing a Directory Stream14.2.4 Simple Program to List a Directory14.2.5 Random Access in a Directory Stream14.2.6 Scanning the Content of a Directory14.2.7 Simple Program to List a Directory, Mark II14.3 Working with Directory Trees ftw_func_t ftw64_func_t nftw_func_t nftw64_func_t14.4 Hard Links14.5 Symbolic Links14.6 Deleting Files14.7 Renaming Files14.8 Creating Directories14.9 File Attributes14.9.1 The meaning of the File Attributes14.9.2 Reading the Attributes of a File14.9.3 Testing the Type of a File14.9.4 File Owner14.9.5 The Mode Bits for Access Permission14.9.6 How Your Access to a File is Decided14.9.7 Assigning File Permissions14.9.8 Testing Permission to Access a File14.9.9 File Times14.9.10 File Size14.10 Making Special Files14.11 Temporary Files15 Pipes and FIFOs15.1 Creating a Pipe15.2 Pipe to a Subprocess15.3 FIFO Special Files15.4 Atomicity of Pipe I/O16 Sockets16.1 Socket Concepts16.2 Communication Styles16.3 Socket Addresses16.3.1 Address Formats16.3.2 Setting the Address of a Socket16.3.3 Reading the Address of a Socket16.4 Interface Naming16.5 The Local Namespace16.5.1 Local Namespace Concepts16.5.2 Details of Local Namespace16.5.3 Example of Local-Namespace Sockets16.6 The Internet Namespace16.6.1 Internet Socket Address Formats16.6.2 Host Addresses16.6.2.1 Internet Host AddressesClassless AddressesIPv6 Addresses16.6.2.2 Host Address Data Type16.6.2.3 Host Address Functions16.6.2.4 Host Names16.6.3 Internet Ports16.6.4 The Services Database16.6.5 Byte Order Conversion16.6.6 Protocols Database16.6.7 Internet Socket Example16.7 Other Namespaces16.8 Opening and Closing Sockets16.8.1 Creating a Socket16.8.2 Closing a Socket16.8.3 Socket Pairs16.9 Using Sockets with Connections16.9.1 Making a Connection16.9.2 Listening for Connections16.9.3 Accepting Connections16.9.4 Who is Connected to Me?16.9.5 Transferring Data16.9.5.1 Sending Data16.9.5.2 Receiving Data16.9.5.3 Socket Data Options16.9.6 Byte Stream Socket Example16.9.7 Byte Stream Connection Server Example16.9.8 Out-of-Band Data16.10 Datagram Socket Operations16.10.1 Sending Datagrams16.10.2 Receiving Datagrams16.10.3 Datagram Socket Example16.10.4 Example of Reading Datagrams16.11.2 Configuring inetd16.12 Socket Options16.12.1 Socket Option Functions16.12.2 Socket-Level Options16.13 Networks Database17 Low-Level Terminal Interface17.1 Identifying Terminals17.2 I/O Queues17.3 Two Styles of Input: Canonical or Not17.4 Terminal Modes17.4.1 Terminal Mode Data Types17.4.2 Terminal Mode Functions17.4.3 Setting Terminal Modes Properly17.4.4 Input Modes17.4.5 Output Modes17.4.6 Control Modes17.4.7 Local Modes17.4.8 Line Speed17.4.9 Special Characters17.4.9.1 Characters for Input Editing17.4.9.2 Characters that Cause Signals17.4.9.3 Special Characters for Flow Control17.4.9.4 Other Special Characters17.4.10 Noncanonical Input17.5 BSD Terminal Modes17.6 Line Control Functions17.7 Noncanonical Mode Example17.8 Pseudo-Terminals17.8.1 Allocating Pseudo-Terminals17.8.2 Opening a Pseudo-Terminal Pair18 Syslog18.1 Overview of Syslog18.2 Submitting Syslog Messages18.2.1 openlog18.2.2 syslog, vsyslog18.2.3 closelog18.2.4 setlogmask18.2.5 Syslog Example19 Mathematics19.1 Predefined Mathematical Constants19.2 Trigonometric Functions19.3 Inverse Trigonometric Functions19.4 Exponentiation and Logarithms19.5 Hyperbolic Functions19.6 Special Functions19.7 Known Maximum Errors in Math Functions19.8 Pseudo-Random Numbers19.8.1 ISO C Random Number Functions19.8.2 BSD Random Number Functions19.8.3 SVID Random Number Function19.9 Is Fast Code or Small Code preferred?20 Arithmetic Functions20.1 Integers20.2 Integer Division20.3 Floating Point Numbers20.4 Floating-Point Number Classification Functions20.5 Errors in Floating-Point Calculations20.5.1 FP Exceptions20.5.2 Infinity and NaN20.5.3 Examining the FPU status word20.5.4 Error Reporting by Mathematical Functions20.6 Rounding Modes20.7 Floating-Point Control Functions20.8 Arithmetic Functions20.8.1 Absolute Value20.8.2 Normalization Functions20.8.3 Rounding Functions20.8.4 Remainder Functions20.8.5 Setting and modifying single bits of FP values20.8.6 Floating-Point Comparison Functions20.8.7 Miscellaneous FP arithmetic functions20.9 Complex Numbersconst float complex _Complex_I [Macro]20.10 Projections, Conjugates, and Decomposing of Complex Numbers20.11 Parsing of Numbers20.11.1 Parsing of Integers20.11.2 Parsing of Floats20.12 Old-fashioned System V number-to-string functions21 Date and Time21.1 Time Basics21.2 Elapsed Time21.3 Processor And CPU Time21.3.1 CPU Time Inquiry21.3.2 Processor Time Inquiry21.4 Calendar Time21.4.1 Simple Calendar Time21.4.2 High-Resolution Calendar21.4.3 Broken-down Time21.4.4 High Accuracy Clock21.4.5 Formatting Calendar Time21.4.6 Convert textual time and date information back21.4.6.1 Interpret string according to given format21.4.6.2 A More User-friendly Way to Parse Times and Dates21.4.7 Specifying the Time Zone with TZ21.4.8 Functions and Variables for Time Zones21.4.9 Time Functions Example21.5 Setting an Alarm21.6 Sleeping22 Resource Usage And Limitation22.1 Resource Usage22.2 Limiting Resource Usagestruct rlimit6422.3 Process CPU Priority And Scheduling22.3.1 Absolute Priority22.3.1.1 Using Absolute Priority22.3.2 Realtime Scheduling22.3.3 Basic Scheduling Functions22.3.4 Traditional Scheduling22.3.4.1 Introduction To Traditional Scheduling22.3.4.2 Functions For Traditional Scheduling22.3.5 Limiting execution to certain CPUs22.4 Querying memory available resources22.4.1 Overview about traditional Unix memory handling22.4.2 How to get information about the memory subsystem?22.5 Learn about the processors available23 Non-Local Exits23.1 Introduction to Non-Local Exits23.2 Details of Non-Local Exits23.3 Non-Local Exits and Signals23.4 Complete Context Controlucp )Example for SVID Context Handling24 Signal Handling24.1 Basic Concepts of Signals24.1.1 Some Kinds of Signals24.1.2 Concepts of Signal Generation24.1.3 How Signals Are Delivered24.2 Standard Signals24.2.1 Program Error Signals24.2.2 Termination Signals24.2.3 Alarm Signals24.2.4 Asynchronous I/O Signals24.2.5 Job Control Signals24.2.6 Operation Error Signals24.2.7 Miscellaneous Signals24.2.8 Signal Messages24.3 Specifying Signal Actions24.3.1 Basic Signal Handling24.3.2 Advanced Signal Handling24.3.6 Initial Signal Actions24.4 Defining Signal Handlers24.4.1 Signal Handlers that Return24.4.2 Handlers That Terminate the Process24.4.3 Nonlocal Control Transfer in Handlers24.4.4 Signals Arriving While a Handler Runs24.4.5 Signals Close Together Merge into One24.4.6 Signal Handling and Nonreentrant Functions24.4.7 Atomic Data Access and Signal Handling24.4.7.1 Problems with Non-Atomic Access24.4.7.2 Atomic Types24.4.7.3 Atomic Usage Patterns24.5 Primitives Interrupted by Signals24.6 Generating Signals24.6.1 Signaling Yourself24.6.2 Signaling Another Process24.6.3 Permission for using kill24.6.4 Using kill for Communication24.7 Blocking Signals24.7.1 Why Blocking Signals is Useful24.7.2 Signal Sets24.7.3 Process Signal Mask24.7.4 Blocking to Test for Delivery of a Signal24.7.5 Blocking Signals for a Handler24.7.6 Checking for Pending Signals24.7.7 Remembering a Signal to Act On Later24.8 Waiting for a Signal24.8.2 Problems with pause24.9 Using a Separate Signal Stackoldstack )24.10 BSD Signal Handling24.10.1 BSD Function to Establish a Handler24.10.2 BSD Functions for Blocking Signals25 The Basic Program/System Interface25.1 Program Arguments25.1.1 Program Argument Syntax Conventions25.1.2 Parsing Program Arguments25.2 Parsing program options using getopt25.2.2 Example of Parsing Arguments with getopt25.2.4 Example of Parsing Long Options with getopt_long25.3 Parsing Program Options with Argp25.3.2 Argp Global Variables25.3.3 Specifying Argp Parsers25.3.4 Specifying Options in an Argp Parser25.3.4.1 Flags for Argp Options25.3.5 Argp Parser Functions25.3.5.1 Special Keys for Argp Parser Functions25.3.5.2 Functions For Use in Argp Parsers25.3.5.3 Argp Parsing State25.3.6 Combining Multiple Argp Parsers25.3.8 Customizing Argp Help Output25.3.8.1 Special Keys for Argp Help Filter Functions25.3.11 Argp Examples25.3.11.1 A Minimal Program Using Argp25.3.11.2 A Program Using Argp with Only Default Options25.3.11.3 A Program Using Argp with User Options25.3.11.4 A Program Using Multiple Combined Argp Parsers25.3.12 Argp User Customization25.3.12.1 Parsing of Suboptions25.3.13 Parsing of Suboptions Example25.4 Environment Variables25.4.1 Environment Access25.4.2 Standard Environment Variables25.5 System Calls25.6 Program Termination25.6.1 Normal Termination25.6.2 Exit Status25.6.3 Cleanups on Exit25.6.4 Aborting a Program25.6.5 Termination Internals26 Processes26.1 Running a Command26.2 Process Creation Concepts26.3 Process Identification26.4 Creating a Process26.5 Executing a File26.6 Process Completion26.7 Process Completion Status26.8 BSD Process Wait Functions26.9 Process Creation Example27 Job Control27.1 Concepts of Job Control27.2 Job Control is Optional27.3 Controlling Terminal of a Process27.4 Access to the Controlling Terminal27.5 Orphaned Process Groups27.6 Implementing a Job Control Shell27.6.1 Data Structures for the Shell27.6.2 Initializing the Shell27.6.3 Launching Jobs27.6.4 Foreground and Background27.6.5 Stopped and Terminated Jobs27.6.6 Continuing Stopped Jobs27.6.7 The Missing Pieces27.7 Functions for Job Control27.7.1 Identifying the Controlling Terminal27.7.2 Process Group Functions27.7.3 Functions for Controlling Terminal Access28 System Databases and Name Service Switch28.1 NSS Basics28.2 The NSS Configuration File28.2.1 Services in the NSS configuration File28.2.2 Actions in the NSS configuration28.2.3 Notes on the NSS Configuration File28.3 NSS Module Internals28.3.1 The Naming Scheme of the NSS Modules28.3.2 The Interface of the Function in NSS Modules28.4 Extending NSS28.4.1 Adding another Service to NSS28.4.2 Internals of the NSS Module Functions29 Users and Groups29.1 User and Group IDs29.2 The Persona of a Process29.3 Why Change the Persona of a Process?29.4 How an Application Can Change Persona29.5 Reading the Persona of a Process29.6 Setting the User ID29.7 Setting the Group IDs*ngroups )29.8 Enabling and Disabling Setuid Access29.9 Setuid Program Example29.10 Tips for Writing Setuid Programs29.11 Identifying Who Logged In29.12 The User Accounting Database29.12.1 Manipulating the User Accounting Database29.12.2 XPG User Accounting Database Functions29.12.3 Logging In and Out29.13 User Database29.13.1 The Data Structure that Describes a User29.13.2 Looking Up One User29.13.3 Scanning the List of All Users29.13.4 Writing a User Entry29.14 Group Database29.14.1 The Data Structure for a Group29.14.2 Looking Up One Group29.14.3 Scanning the List of All Groups29.15 User and Group Database Example29.16 Netgroup Database29.16.1 Netgroup Data29.16.2 Looking up one Netgroup29.16.3 Testing for Netgroup Membership30 System Management30.1 Host Identification30.2 Platform Type Identification30.3 Controlling and Querying Mounts30.3.1 Mount Information30.3.1.1 The ‘fstab’ file30.3.1.2 The ‘mtab’ file30.3.1.3 Other (Non-libc) Sources of Mount Information30.3.2 Mount, Unmount, Remount30.4 System Parameters31 System Configuration Parameters31.1 General Capacity Limits31.2 Overall System Options31.3 Which Version of POSIX is Supportedlong int _POSIX_VERSION31.5 Minimum Values for General Capacity Limits31.6 Limits on File System Capacityint NAME_MAXint PATH_MAXint MAXNAMLENint FILENAME_MAX31.7 Optional Features in File Supportint _POSIX_CHOWN_RESTRICTED [Macro]unsigned char _POSIX_VDISABLE [Macro]31.8 Minimum Values for File System Limits31.10 Utility Program Capacity Limitsint BC_BASE_MAXint BC_DIM_MAXint BC_SCALE_MAXint BC_STRING_MAX31.11 Minimum Values for Utility Limits31.12 String-Valued Parameters32 DES Encryption and Password Handling32.1 Legal Problems32.2 Reading Passwords32.3 Encrypting Passwordsdata )32.4 DES Encryption33 Debugging support33.1 BacktracesAppendix A C Language Facilities in the LibraryA.1 Explicitly Checking Internal ConsistencyA.2 Variadic FunctionsA.2.1 Why Variadic Functions are UsedA.2.2 How Variadic Functions are Defined and UsedA.2.2.1 Syntax for Variable ArgumentsA.2.2.2 Receiving the Argument ValuesA.2.2.3 How Many Arguments Were SuppliedA.2.2.4 Calling Variadic FunctionsA.2.2.5 Argument Access MacrosA.2.3 Example of a Variadic FunctionA.2.3.1 Old-Style Variadic FunctionsA.3 Null Pointer ConstantA.4 Important Data TypesA.5 Data Type MeasurementsA.5.1 Computing the Width of an Integer Data TypeA.5.2 Range of an Integer TypeA.5.3 Floating Type MacrosA.5.3.1 Floating Point Representation ConceptsA.5.3.2 Floating Point ParametersA.5.3.3 IEEE Floating PointA.5.4 Structure Field Offset MeasurementAppendix B Summary of Library FacilitiesAppendix C Installing the GNU C LibraryC.1 Configuring and compiling GNU LibcC.2 Installing the C LibraryC.3 Recommended Tools for CompilationC.4 Specific advice for GNU/Linux systemsC.5 Reporting BugsAppendix D Library MaintenanceD.1 Adding New FunctionsD.2 Porting the GNU C LibraryD.2.1 Layout of the ‘sysdeps’ Directory HierarchyD.2.2 Porting the GNU C Library to Unix SystemsAppendix E Contributors to the GNU C LibraryAppendix F Free Software Needs FreeAppendix G GNU Lesser General Public LicenseG.0.1 PreambleG.0.2 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATIONEND OF TERMS AND CONDITIONSG.0.3 How to Apply These Terms to Your New LibrariesAppendix H GNU Free Documentation LicenseH.0.1 ADDENDUM: How to use this License for your documentsConcept Index/4ABCEFIHMNOPQTUVWYZType IndexBCJLMNPTUFunction and Macro IndexCEIJMNOYVariable and Constant Macro Index(BEGUTWXYProgram and File Index-BCDEFGHIMNOPSTUVWZ