內容簡介
《Linux C函式實例速查手冊》詳細地介紹了Linux環境下常用的C語言函式,重點介紹每個函式的參數意義、返回值的意義以及函式使用時的注意事項。Linux作為一個自由作業系統已經越來越受到業內人士的關注,該環境下的開發者也日趨增多。開發Linux環境下的應用程式時,需要使用大量的Linux函式。這些函式有的屬於Linux作業系統的API,有的屬於C語言的標準庫函式。這些函式數目繁多,如果強行記憶每一個函式的使用方法顯然是不明智的,因此讀者需要一本Linux環境下的C語言函式速查手冊。《Linux C函式實例速查手冊》含有大量實例,詳細講解每個函式的使用方法,每個函式均給出了對應的套用實例,方便讀者理解函式並進行模擬實踐。《Linux C函式實例速查手冊》適合於正在學習Linux環境下C語言編程的用戶閱讀,並可作為開發人員的參考手冊。
目錄
第1章 初級I/O函式
1.1 close函式:關閉已經打開的檔案
1.2 creat函式:創建一個檔案
1.3 dup函式:複製檔案描述符
1.4 dup2函式:複製檔案描述符到指定的位置
1.5 fcntl函式:改變檔案的狀態
1.6 fsync函式:將緩衝區數據回寫到磁碟檔案
1.7 Lseek函式:移動檔案的讀寫位置
1.8 open函式:打開一個檔案
1.9 read函式:讀取檔案的數據
1.10 sync函式:將所有打開的檔案寫回磁碟
1.11 write函式:輸出內容到檔案
第2章 檔案管理操作函式
2.1 access函式:判斷進程是否具有訪問檔案的許可權
2.2 alphasort函式:按照字母順序排序目錄結構
2.3 chdir函式:改變當前的工作目錄
2.4 chmod函式:改變檔案的許可權
2.5 chown函式:改變檔案的所有者
2.6 chroot函式:改變進程的根目錄
2.7 closedir函式:關閉目錄檔案
2.8 fchdir函式:使用檔案描述符改變當前的工作目錄
2.9 fchmod函式:改變一個已經打開的檔案的許可權
2.10 fstat函式:得到一個打開檔案的狀態
2.11 truncate函式:改變一個打開檔案的大小
2.12 ftw函式:遍歷目錄樹
2.13 get_current_dir_name函式:取得當前的工作目錄
2.14 getcwd函式:取得進程的當前工作目錄
2.15 lchown函式:改變符號連結檔案的擁有者
2.16 link函式:建立一個硬連結
2.17 lstat函式:得到符號連結的檔案狀態
2.18 nftw函式:遍歷目錄樹
2.19 opendir函式:打開目錄檔案
2.20 readdir函式:讀取目錄檔案的內容
2.21 readlink函式:讀取符號連結檔案本身的內容
2.22 realpath函式:將相對目錄路徑轉換成絕對路徑
2.23 remove函式:刪除檔案或者目錄
2.24 rename函式:更改檔案的名稱或位置
2.25 rewinddir函式:回卷目錄檔案
2.26 seekdir函式:檔案定位函式
2.27 stat函式:取得檔案狀態
2.28 symlink函式:創建一個符號連結
2.29 telldir函式:取得目錄檔案的讀取位置
2.30 truncate函式:改變檔案大小
2.31 umask:設定創建檔案時使用的許可權掩碼
2.32 unlink函式:刪除檔案的一個硬連結
第3章 標準I/O函式
3.1 clearerr函式:清除錯誤標誌
3.2 fclose函式:關閉流檔案描述符
3.3 fdopen函式:轉換檔案描述符到檔案指針
3.4 feof函式:檔案結束判斷函式
3.5 fflush函式:刷新流檔案讀寫快取
3.6 fgetc函式:從流檔案中讀取一個字元
3.7 fgetpos函式:返回流檔案當前讀寫位置
3.8 fgets函式:從流檔案中讀出一行數據
3.9 fileno函式:獲得流檔案的檔案描述符
3.10 fopen函式:打開檔案
3.11 fputc函式:將字元寫入流檔案
3.12 fputs函式:將字元串寫入流檔案
3.13 fread函式:從流檔案中讀出數據
3.14 freopen函式:打開檔案
3.15 fseek函式:移動流檔案的讀寫位置
3.16 fsetpos函式:設定流檔案當前讀寫位置
3.17 ftell函式:得到流檔案的讀取位置
3.18 fwrite函式:向流檔案中寫入數據
3.19 getc函式:從檔案中讀出一個字元
3.20 getchar函式:從標準輸入中讀入一個字元
3.21 gets函式:從標準輸入中讀入一行數據
3.22 mktemp函式:產生臨時檔案的檔案名稱
3.23 putc函式:將字元寫入檔案
3.24 putchar函式:將字元輸出到標準輸出中
3.25 puts函式:將字元串輸出在標準輸出中
3.26 rewind函式:將流檔案的讀寫位置移動到檔案的起始位置
3.27 setbuf函式:設定檔案緩衝區
3.28 setbuffer函式:設定檔案緩衝區
3.29 setlinebuf函式:設定行緩衝模式
3.30 setvbuf函式:設定自定義檔案緩衝區
3.31 tmpfile函式:建立臨時的二進制檔案
3.32 ungetc函式:將字元寫回檔案
第4章 格式化輸入輸出函式
4.1 fprintf函式:格式化輸出到檔案
4.2 fscanf函式:格式化從檔案中讀出數據
4.3 printf函式:格式化輸出
4.4 scanf函式:格式化輸入
4.5 snprintf函式:格式化字元輸入
4.6 sprintf函式:格式化字元串列印
4.7 sscanf函式:格式化字元串取值
4.8 vfprintf函式:可變參數輸出函式
4.9 vfscanf函式:格式化輸入
4.10 vprintf函式:格式化輸出函式
4.11 vscanf函式:格式化輸入函式
4.12 vsnprintf函式:格式化字元串複製
4.13 vsprintf函式:格式化字元串複製
4.14 vsscanf函式:格式化字元輸入
第5章 進程控制
5.1 abort函式:進程異常終止函式
5.2 atexit函式:進程終止處理函式
5.3 execl函式:執行檔案函式
5.4 execle函式:執行檔案的函式
5.5 execlp函式:從PATH環境變數中查找檔案並執行
5.6 execv函式:執行檔案
5.7 execve函式:執行檔案
5.8 execvp函式:執行檔案
5.9 exit函式:結束進程運行的函式
5.10 _exit函式:結束進程運行的函式
5.11 fork函式:建立一個新的進程
5.12 getgid函式:取得實際進程組ID
5.13 getegid函式:取得有效進程組ID
5.14 getpid函式:取得有效組ID
5.15 getppid函式:取得父進程的進程識別碼
5.16 getpriority函式:取得進程執行優先權
5.17 longjmp函式:跳到原先setjmp存儲的堆疊環境
5.18 on_exit函式:設定程式正常結束前調用的函式
5.19 setjmp函式:存儲當前堆疊環境
5.20 setgid函式:設定進程的進程組ID
5.21 setuid函式:設定進程組ID
5.22 setpriority函式:設定程式進程優先權
5.23 siglongjmp函式:跳到原先sigset jmp存儲的堆疊環境
5.24 sigsetjmp函式:存儲當前堆疊環境和禁止的信號集
5.25 system函式:執行Shell命令
5.26 vfork函式:建立一個新的進程
5.27 wait函式:等待子進程中斷或結束
5.28 waitpid函式:等待子進程中斷或結束
5.29 wait3函式:等待進程結束並且輸出子進程統計信息
第6章 進程間通信函式
6.1 ftok函式:獲得項目相關的IPC鍵值
6.2 msgctl函式:訊息佇列操作函式
6.3 msgget函式:創建或打開訊息佇列
6.4 msgrcv函式:讀取訊息佇列
6.5 msgsnd函式:向訊息佇列中寫入訊息
6.6 semctl函式:信號量操作函式
6.7 semget函式:創建或打開信號量
6.8 semop函式:釋放或獲取信號量
6.9 shmat函式:導入共享記憶體
6.10 shmctl函式:共享記憶體操作函式
6.11 shmdt函式:將共享記憶體從程式中脫離
6.12 shmget函式:創建共享記憶體
6.13 mkfifo函式:創建fifo管道函式
6.14 pclose函式:關閉管道檔案
6.15 pipe函式:創建匿名管道
6.16 popen函式:創建管道檔案
第7章 信號函式
7.1 alarm函式:核心定時器函式
7.2 kill函式:信號傳送函式
7.3 pause函式:進程暫停執行函式
7.4 raise函式:向進程自身傳送信號函式
7.5 sigaction函式:高級信號處理方式設定函式
7.6 sigaddset函式:添加信號到信號集函式
7.7 sigdelset函式:刪除信號集中對應信號函式
7.8 sigemptyset函式:清空信號集函式
7.9 sigfillset函式:填充信號集函式
7.10 sigismember函式:測試某個信號是否在信號集中
7.11 signal函式:信號處理方式設定函式
7.12 sigpause函式:暫停進程直到信號到來
7.13 sigpending函式:查詢未決信號
7.14 sigprocmask函式:信號禁止函式
7.15 sigsuspend函式:暫停直到信號到來
7.16 sleep函式:讓進程休眠一段時間
第8章 用戶、組函式及環境變數函式
8.1 clearenv函式:刪除所有環境變數的值
8.2 cuserid函式:獲得用戶名函式
8.3 endgrent函式:關閉系統組檔案函式
8.4 endpwent函式:關閉系統口令函式
8.5 endutent函式:關閉utmp檔案
8.6 fgetgrent函式:從檔案中讀取組數據
8.7 fgetpwent函式:從檔案中讀取密碼格式數據
8.8 getegid函式:獲得有效(effective gid)組識別符
8.9 getenv函式:取得環境變數的值
8.10 geteuid函式:獲得有效(effective uid)用戶識別符
8.11 getgid函式:獲得組識別符
8.12 getgrent函式:從檔案/etc/group中讀取組信息
8.13 getgrgid函式:從檔案/etc/group中查找組信息
8.14 getgrnam函式:從檔案/etc/group中查找組信息
8.15 getgroups函式:返回當前用戶所屬的組列表
8.16 getlogin函式:獲取當前用戶的賬號名稱
8.17 getpw函式:獲取指定uid的用戶信息
8.18 getpwent函式:讀取/etc/passwd檔案中的數據
8.19 getpwnam函式:以用戶名獲取用戶信息
8.20 getpwuid函式:以用戶ID獲取用戶信息
8.21 getuid函式:獲取當前進程所屬的用戶ID
8.22 getutent函式:獲取登錄信息
8.23 getutid函式:獲取指定用戶ID的登錄信息
8.24 getutline函式:查找指定的登錄信息
8.25 initgroups函式:初始化組信息
8.26 logwtmp函式:添加登錄記錄信息
8.27 putenv函式:改變環境變數的值
8.28 pututline函式:添加登錄信息
8.29 setegid函式:設定有效組ID
8.30 setenv函式:改變環境變數的值
8.31 seteuid函式:設定有效用戶ID
8.32 setfsgid函式:設定進程的檔案系統的組ID
8.33 setfsuid函式:設定進程的檔案系統的用戶ID
8.34 setgid函式:設定進程的組ID
8.35 setgrent函式:將檔案etc/group的讀寫位置移動到起始位置
8.36 setgroups函式:設定當前進程的組識別符
8.37 setpwent函式:將檔案etc/passwd的讀寫位置移動到起始位置
8.38 setregid函式:設定當前進程的真實以及有效組ID
8.39 setreuid函式:設定當前進程的真實以及有效用戶ID
8.40 setuid函式:設定進程的用戶ID
8.41 setutent函式:將檔案utmp的讀寫位置移動到起始位置
8.42 unsetenv函式:清除環境變數的值
8.43 updwtmp函式:將登錄數據記錄寫入utmp檔案
8.44 utmpname函式:設定檔案utmp的絕對位置
第9章 錯誤處理與記憶體分配函式
9.1 brk函式:改變數據段大小
9.2 calloc函式:記憶體分配函式
9.3 ferror函式:檔案錯誤判斷
9.4 free函式:釋放動態分配記憶體函式
9.5 getpagesize函式:獲得作業系統記憶體頁大小函式
9.6 malloc函式:動態記憶體分配函式
9.7 mmap函式:檔案映射函式
9.8 munmap函式:釋放映射的記憶體地址
9.9 perror函式:錯誤原因輸出函式
9.10 realloc函式:記憶體截取函式
9.11 sbrk函式:增加數據空間
9.12 strerror函式:錯誤代碼查詢
第10章 日誌函式、動態函式與正則表達式函式
10.1 closelog函式:關閉信息記錄
10.2 dlclose函式:關閉動態庫檔案
10.3 dlerror函式:動態函式出錯處理
10.4 dlopen函式:打開動態庫檔案
10.5 dlsym函式:在動態庫檔案中查找函式
10.6 openlog函式:打開記錄信息
10.7 regcomp函式:編譯正則表達式
10.8 regerror函式:編譯錯誤判斷函式
10.9 regexec函式:執行正則匹配
10.10 regfree函式:釋放正則模式串資源
10.11 syslog函式:輸出記錄信息
第11章 時間函式
11.1 asctime函式:字元串時間操作函式
11.2 clock函式:計算運行時間函式
11.3 ctime函式:字元串時間函式
11.4 difftime函式:計算時間差函式
11.5 ftime函式:取得系統時間
11.6 gettimeofday函式:取得系統當前時間
11.7 gmtime函式:日曆時間格式函式
11.8 localtime函式:獲得當前系統時間
11.9 mktime函式:系統時間轉換函式
11.10 settimeofday函式:系統時間設定函式
11.11 strftime函式:時間格式化輸出函式
11.12 time函式:獲得系統當前時間
11.13 tzset函式:設定系統時區變數tzname
第12章 socket相關函式
12.1 accept函式:處理socket請求函式
12.2 bind函式:將socket描述符與一個套接口綁定
12.3 connect函式:與遠程主機連線
12.4 endprotoent函式:結束網路協定的讀取函式
12.5 endservent函式:關閉檔案/etc/services
12.6 gethostbyaddr函式:由IP獲得主機信息
12.7 gethostbyname函式:由主機名獲得主機信息
12.8 getprotobyname函式:由協定名獲取協定數據
12.9 getprotobynumber函式:由協定編號獲取協定數據
12.10 getprotoent函式:讀取檔案/etc/rotoent中的網路協定數據
12.11 getservbyname函式:獲得網路服務協定數據
12.12 getservbyport函式:獲得網路服務協定數據
12.13 getservent函式:讀取主機網路服務數據
12.14 getsockopt函式:獲得指定socket描述符的狀態
12.15 herror函式:錯誤原因輸出函式
12.16 hstrerror函式:錯誤代碼查詢
12.17 htonl函式:地址位元組順序轉換
12.18 htons函式:地址位元組順序轉換
12.19 inet_addr函式:網路地址類型轉換
12.20 inet_aton函式:網路地址類型轉換
12.21 inet_ntoa函式:網路地址類型轉換
12.22 listen函式:網路socket監聽
12.23 ntohl函式:地址位元組順序轉換
12.24 ntohs函式:地址位元組順序轉換
12.25 recv函式:接收訊息
12.26 recvfrom函式:接收訊息
12.27 recvmsg函式:多緩衝讀取數據
12.28 send函式:向遠程主機傳送數據
12.29 sendto函式:傳送數據到遠程主機
12.30 setprotoent函式:打開網路協定檔案
12.31 setservent函式:打開網路服務檔案
12.32 setsockopt函式:設定socket描述符的狀態
12.33 shutdown函式:結束socket套接字
12.34 socket函式:創建網路套接字
第13章 字元測試函式
13.1 isalnum函式:判斷字元是否為英文字母或數字
13.2 isalpha函式:判斷字元是否為英文字母
13.3 isascii函式:判斷字元是否為ASCII字元
13.4 isblank函式:判斷字元是否為空白字元
13.5 iscntrl函式:判斷字元是否為ASCII的控制字元
13.6 isdigit函式:判斷字元是否為阿拉伯數字
13.7 isgraph函式:判斷字元是否為可列印字元
13.8 islower函式:判斷字元是否為小寫英文字母
13.9 isprint函式:判斷字元是否為可列印字元
13.10 isspace函式:判斷字元是否為空格字元
13.11 ispunct函式:判斷字元是否為標點符號
13.12 isupper函式:判斷字元是否為大寫英文字母
13.13 isxdigit函式:判斷字元是否為十六進制數字
第14章 數據轉換函式
14.1 atof函式:將字元串轉換成浮點數
14.2 atoi函式:將字元串轉換成整數
14.3 atol函式:將字元串轉換成長整數
14.4 ecvt函式:將浮點數轉換成字元串
14.5 fcvt函式:將浮點數轉換成字元串
14.6 gcvt函式:將浮點數轉換成字元串
14.7 strtod函式:將字元串轉換成浮點數
14.8 strtol函式:將字元串轉換成長整數
14.9 strtoul函式:將字元串轉換成無符號長整數
14.10 toascii函式:將整數轉換成合法的ASCII字元
14.11 tolower函式:將大寫字母轉換成小寫字母
14.12 toupper函式:將小寫字母轉換成大寫字母
第15章 字元串處理函式
15.1 bcmp函式:比較兩塊記憶體中的內容
15.2 bcopy函式:複製記憶體中的內容
15.3 bzero函式:將一塊記憶體內容全清零
15.4 ffs函式:在一個整數中查找第一個值為真的位
15.5 index函式:查找字元串中第一個出現的指定字元
15.6 memccpy函式:複製記憶體中的內容
15.7 memchr函式:在一塊記憶體指定範圍查找一個指定字元
15.8 memcmp函式:比較記憶體中存放的內容
15.9 memcpy函式:複製一塊記憶體內容到另一塊中
15.10 memfrob函式:對某個記憶體區重新編碼
15.11 memmove函式:複製記憶體內容
15.12 memset函式:將某值填入到一塊記憶體區域
15.13 rindex函式:查找字元串中最後一個出現的指定字元
15.14 strcasecmp函式:忽略大小寫比較字元串
15.15 strcat函式:將一個字元串連線另一字元串的尾部
15.16 strchr函式:查找字元串中指定字元
15.17 strcmp函式:比較兩個字元串
15.18 strcoll的函式:根據當前環境信息來比較字元串
15.19 strcpy函式:複製一個字元串的內容到另一個字元串中
15.20 strcspn函式:計算字元串中由非指定字元集字元組成的子字元串的長度
15.21 strdup函式:複製字元串內容
15.22 strfry函式:隨機重組一個字元串
15.23 strlen函式:返回字元串長度
15.24 strncasecmp函式:忽略大小寫比較兩個字元串
15.25 strncat函式:將一個字元串的前n個字元連線到另一字元串的尾部
15.26 strncmp函式:比較兩個字元串
15.27 strncpy函式:複製字元串
15.28 strpbrk函式:查找字元串中第一個出現的指定字元
15.29 strrchr函式:查找字元串中最後一個出現的指定字元
15.30 strspn函式:計算字元串中由指定字元集字元組成的子字元串的長度
第16章 數學計算函式
16.1 abs函式:計算整數的絕對值
16.2 acos函式:計算反餘弦的值
16.3 asin函式:計算反正弦的值
16.4 atan函式:計算反正切的值
16.5 atan2函式:計算反正切的值
16.6 ceil函式:計算大於或等於給定參數的最小整數
16.7 cos函式:計算餘弦的值
16.8 cosh函式:計算雙曲線的餘弦值
16.9 div函式:計算兩整數相除後的商和餘數
16.10 exp函式:計算浮點數的指數
16.11 fabs函式:計算浮點數的絕對值
16.12 frexp函式:計算浮點數的尾數和指數
16.13 hypot函式:計算直角三角形斜邊長度
16.14 labs函式:計算長整數的絕對值
16.15 ldexp函式:計算浮點數與2的exp次方的積
16.16 ldiv函式:計算兩長整數相除後的商和餘數
16.17 log函式:計算以e為底的對數值
16.18 log10函式:計算以10為底的對數值
16.19 modf函式:將浮點數分解為小數和整數兩部分
16.20 pow函式:計算次方值
16.21 sin函式:取正弦的值
16.22 sinh函式:計算雙曲線的正弦值
16.23 sqrt函式:計算浮點數的平方根
16.24 tan函式:計算角度的正切值
16.25 tanh函式:計算雙曲線的正切函式值
第17章 隨機數及數據加密函式
17.1 crypt函式:對字元串使用DES算法編碼
17.2 drand48函式:產生一個正的隨機浮點數
17.3 erand48函式:產生一個正的隨機浮點數
17.4 initstate:建立隨機數狀態數組
17.5 jrand48函式:產生一個長整型的隨機數
17.6 lcong48函式:設定48位運算的隨機數種子
17.7 lrand48函式:產生一個正的長整型隨機數
17.8 mrand48函式:產生一個長整型隨機數
17.9 nrand48函式:產生一個正的長整數隨機數
17.10 rand函式:產生偽隨機數
17.11 random函式:產生隨機數
17.12 seed48函式:設定48位運算的隨機數種子
17.13 setstate函式:建立隨機數狀態數組
17.14 srand函式:設定隨機數種子
17.15 srand48函式:設定48位運算的隨機數種子
17.16 srandom函式:設定隨機數種子
17.17 getpass函式:取得用戶輸入密碼字元串
第18章數據結構函式
18.1 bsearch函式:在有序數組中二分查找數據
18.2 hcreate函式:建立哈希表
18.3 hdestroy函式:刪除哈希表
18.4 hsearch函式:在哈希表中查找關鍵數據
18.5 lfind函式:線性搜尋
18.6 lsearch函式:線性搜尋
18.7 qsort函式:使用快速排序法排列數組
18.8 tdelete函式:從二叉樹中刪除數據
18.9 tfind函式:搜尋二叉樹
18.10 tsearch函式:搜尋二叉樹
18.11 twalk函式:遍歷二叉樹
第19章 其他函式
19.1 getopt函式:分析命令參數
19.2 isatty函式:判斷檔案描述符是否為終端
19.3 pselect函式:多路轉接I/O
19.4 select函式:多路I/O轉接
19.5 ttyname函式:返回終端機的名稱
附錄A Linux函式的首字母索引
附錄B Linux指令的首字母索引