C語(yǔ)言本身并沒(méi)有提供內(nèi)置的功能來(lái)完成諸如輸入/輸出,內(nèi)存管理,字符串操作等任務(wù),這些功能定義在標(biāo)準(zhǔn)的庫(kù)中,開(kāi)發(fā)人員在編譯和鏈接程序是必須要使用庫(kù)。本手冊(cè)描述的是GNU C Library,它定義了所有的庫(kù)函數(shù),而且符合ANSI C標(biāo)準(zhǔn),POSIX的附加特性和其他UNIX版本變種的特點(diǎn)。GUN C Library 支持ANSI C-1989,POSIX 1003.1-1990和POSIX 1003.2-1992的大多數(shù)函數(shù),與4.4BSD向上兼容,包括許多System V的函數(shù),加上GNU的擴(kuò)充。GUN C Library是目前使用得非常廣泛的庫(kù)之一。這本手冊(cè)介紹怎樣使用GNU庫(kù)的功能,包括UNIX上的“庫(kù)函數(shù)”和“系統(tǒng)調(diào)用”。
作者簡(jiǎn)介
暫缺《GNU C庫(kù)技術(shù)手冊(cè)(英文版)》作者簡(jiǎn)介
圖書(shū)目錄
1. Introduction 1.1 Getting Started 1.2 Standards and Portability 1.3 Using the Library 1.4 Roadmap to the Manual 2 Error Reporting 2.1 Checking For Error 2.2 Error Codes 2.3 Error Messages 3 Memory Allocation 3.1 Dynamic Memory Allocation Concepts 3.2 Dynamic Allocation and C 3.3 Unconstrained Allocation 3.4 Allocation Debugging 3.5 Obstacks 3.6 Automatic Storage with Varible Size 4 Character Handling 4.1 Classification of Characters 4.2 Case Conversion 4.3 Character Class determination for wide characters 4.4 notes on using wide characters 5 string and array utilities 5.1 representation of strings 5.2 string and array conventions 5.3 string length 5.4 copying and concatenation 5.5 string /array comparison 5.6 collation functions 5.7 search functions 5.8 encode binary data 5.9 finding tokens in a string 5.10 argz and enzy vectors 6 character set handling 6.1 introduction to extended characters 6.2 overview about character handling funcations 6.3 restartable multibyte conversion functions 6.4 non-reentrantconversion function 6.5 generic charset conversion 7 locales and internationalization 7.1 what effects a locale has 7.2 choosing a locale 7.3 categories of activites that locales affect 7.4 how programs set the locale 7.5 standard locales 7.6 accessing locale information 7.7 a dedicated function to format numbers 8 message translation 8.1 x/open message catalog handling 8.2 the uniforum approach to message translation 9 searching and sorting 9.1 definig the comparison function 9.2 array search function 9.3 array sort function 9.4 searching and sorting example 9.5 the hsearch function 9.6 the tsearch function 10 pattern matching 10.1 wildcard matching 10.2 globbing 10.3 regular expression matching 10.4 shell-style word expansion 11 input/output overview 11.1 input/output concepts 11.2 file names 12 input/output on streams 12.1 streams 12.2 standard streams 12.3 opening streams 12.4 closing streams 12.5 simple output by characters or lines 12.6 character input 12.7 line-oriented input 12.8 unleading 12.9 block input/output 12.10 formatted output 12.11 customizing printf 12.12 formatted input 12.13 end-of-file and errors 12.14 text and binary streams 12.15 file positioning 12.16 portable file-position functions 12.17 stream buffering 12.18 other kinds of streams 12.19 formatted messages 13 low-level input/output 13.1 opening and closing files 13.2 input and output primitives 13.3 setting the file position of a descript 13.4 descriptors and streams 13.5 dangers of mixing streams and descriptors 13.6 fast scatter-gather I/O 13.7 Momory-mapped I/O 13.8 Waiting for Input or Output 13.9 synchronizing I/O operations 13.10 perform I/O operations in parallel 13.11 control operations on files 13.12 file Descriptor flags 13.13 duplication descriptors 13.14 file status flags 13.15 file locks 13.16 interrupt-driven input 13.17 generic I/O control operators 14 file system interface 14.1 working directory 14.2 accessing directories 14.3 working with directory trees 14.4 hard links 14.5 symbolic links 14.6 deleting files 14.7 renaming files 14.8 creating directories 14.9 files attributes 14.10 making special files 14.11 temporary files 15 pipes and fifos 15.1 creating a pipe 15.2 pipe to a subprocess 15.3 fifo special files 15.4 automicity of pipe I/O 16 sockets 16.1 socket concepts 16.2 communication styles 16.3 socket addresses 16.4 interface naming 16.5 the local namespace 16.6 the internet namespace 16.7 other namespaces 16.8 opening and closing sockets 16.9 using sockets with connections 16.10 datagram socket operations 16.11 the inetd daemon 16.12 socket options 16.13 networks database 17 low-level terminal interface 17.1 identifying terminals 17.2 I/O queues 17.3 two styles of input:canonical or not 17.4 terminal modes 17.5 line control functions 17.6 noncanonical mode example 17.7 pseudo-tdrminals 18 mathematics 18.1 predefined mathematical constants 18.2 trigonometric functions 18.3 inverse trigonometric functions 18.4 exponentiation and logarithms 18.5 hyperbolic functions 18.6 special functions 18.7 pseudo-random numbers 18.8 is fast code or small code preferred 19 arithmetic functions 19.1 floating point numbers 19.2 floating-point number classification functions 19.3 errors in floating-point calculations 19.4 rounding modes 19.5 floating-point control functions 19.6 arithmetic functions 19.7 complex unmbers 19.8 projections,conjugates,and decompoing of complex numbers 19.9 integer division 19.10 parsion of numbers 19.11 old-fashioned system v number-to-string functions 20 date and time 20.1 processor time 20.2 calendar time 20.3 precision time 20.4 setting an alarm 20.5 sleeping 20.6 resource usage 20.7 limiting resource usage 20.8 process priority 21 Non-Local Exits 21.1 Introduction to Non-Local Exits 21.2 Datails of Non-Local Exits 21.3 Non-Local Exits and Signals 22 Signal Handling 22.1 Basic Concepts of Signals 22.2 Standard Signals 22.3 Special Signal Actions 22.4 Defining Signal Handlers 22.5 Primitives Interrupted by Signals 22.6 Generating Signals 22.7 Blocking Signals 22.8 Waiting for a Signal 22.9 Using a Separate Signal Stack 22.10 BSD Signal Handling 23 Process Startup and Termination 23.1 Program Arguments 23.2 Parsing program options using getopt 23.3 Parsing Program Options with Argp 23.4 Environment Varisbles 23.5 Program Termination 24 processes 24.1 running a command 24.2 process creation concepts 24.3 process identification 24.4 creating a process 24.5 executing a file 24.6 process completion 24.7 process completion 24.8 bsd process wait functions 24.9 process creation example 25 job control 25.1 concepts of job control 25.2 job control is optional 25.3 controlling termianl of a process 25.4 orphaned process groups 25.5 access to the controlling terminal 25.6 implementing a job control shell 25.7 funcitons for job control 26 system databases and name service switch 26.1 nss basics 26.2 the nss configuration file 26.3 nss nodule internals 26.4 extending nss 27 users and groups 27.1 user and group ids 27.2 the persona of a process 27.3 why change the persona of a process 27.4 how an application can change persona 27.5 reading the persona of a process 27.6 setting the user id 27.7 setting the group ids 27.8 enabling and disabling setuid access 27.9 setuid program example 27.10 tips for writing setuid programs 27.11 identifying who logged in 27.12 the user accounting database 27.13 user database 27.14 group database 27.15 user and group database example 27.16 netgroup database 28 system information 28.1 host indentification 28.2 hardware/software type identification 28.3 which filesystems are mounted and /or available 29 system configuration paremeters 29.1 general capactiy limits 29.2 overall system options 29.3 which version of posix is supported 29.4 using sysconf 29.5 minimum values for general capacity limits 29.6 limits on file system capacity 29.7 optional features in file support 29.8 minimum values for file system limits 29.9 using pathconf 29.10 utility program capacity limits 29.11 minimum values for utility limits 29.12 string-valued parameters 30 des encryption and password handling 30.1 legal problems 30.2 reading passwords 30.3 encrypting passwords 30.4 des encryption 31 posix threads 31.1 basic thread operations 31.2 thread attributes 31.3 cancellation 31.4 cleanup handlers 31.5 mutexes 31.6 condition variables 31.7 posix semaphores 31.8 thread-specific data 31.9 threads and signal handling 31.10 miscellaneous thread funcitons Appendix A C Language Facilities In the Library Appendix B Summary of Library facilities Appendix C Installing the GNU C Library Appendix D Library Maintenance Appendix E Contributors ot the GNU C Library Appendix F GNU LIBRARY GENERAL PUBLICE LICENSE