欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux/UNIX系統(tǒng)編程手冊(cè) PDF掃描版[262MB]

Linux/UNIX系統(tǒng)編程手冊(cè)

  • 書籍大?。?span>262.89MB
  • 書籍語言:簡(jiǎn)體中文
  • 書籍類型:國(guó)產(chǎn)軟件
  • 書籍授權(quán):免費(fèi)軟件
  • 書籍類別:Linux_unix
  • 應(yīng)用平臺(tái):PDF
  • 更新時(shí)間:2015-05-21
  • 購買鏈接:
  • 網(wǎng)友評(píng)分:
360通過 騰訊通過 金山通過

情介紹

Linux/UNIX系統(tǒng)編程手冊(cè)(上、下冊(cè))是介紹Linux與UNIX編程接口的權(quán)威著作。Linux編程資深專家Michael Kerrisk在書中詳細(xì)描述了Linux/UNIX系統(tǒng)編程所涉及的系統(tǒng)調(diào)用和庫函數(shù),并輔之以全面而清晰的代碼示例?!禠inux/UNIX系統(tǒng)編程手冊(cè)(上、下冊(cè))》涵蓋了逾500個(gè)系統(tǒng)調(diào)用及庫函數(shù),并給出逾200個(gè)程序示例,另含88張表格和115幅示意圖。

《Linux/UNIX系統(tǒng)編程手冊(cè)(上、下冊(cè))》總共分為64章,主要講解了高效讀寫文件,對(duì)信號(hào)、時(shí)鐘和定時(shí)器的運(yùn)用,創(chuàng)建進(jìn)程、執(zhí)行程序,編寫安全的應(yīng)用程序,運(yùn)用POSIX線程技術(shù)編寫多線程程序,創(chuàng)建和使用共享庫,運(yùn)用管道、消息隊(duì)列、共享內(nèi)存和信號(hào)量技術(shù)來進(jìn)行進(jìn)程間通信,以及運(yùn)用套接字API編寫網(wǎng)絡(luò)應(yīng)用等內(nèi)容。

《Linux/UNIX系統(tǒng)編程手冊(cè)(上、下冊(cè))》在匯聚大批 Linux專有特性(epoll、inotify、/proc)的同時(shí),還特意強(qiáng)化了對(duì)UNIX標(biāo)準(zhǔn)(POSIX、SUS)的論述,徹底達(dá)到了“魚與熊掌,二者得兼”的效果,這也堪稱本書的最大亮點(diǎn)。

《Linux/UNIX系統(tǒng)編程手冊(cè)(上、下冊(cè))》布局合理,論述清晰,說理透徹,尤其是作者對(duì)示例代碼的構(gòu)思巧妙,獨(dú)具匠心,仔細(xì)研讀定會(huì)受益良多。本書適合從事Linux/UNIX系統(tǒng)開發(fā)、運(yùn)維工作的技術(shù)人員閱讀,同時(shí)也可作為高校計(jì)算機(jī)專業(yè)學(xué)生的參考研習(xí)資料。
 
Linux/UNIX系統(tǒng)編程手冊(cè)(上、下冊(cè))》 上冊(cè) 目錄:

    第1章 歷史和標(biāo)準(zhǔn) 1
   1.1 UNIX和C語言簡(jiǎn)史 1
   1.2 Linux簡(jiǎn)史 4
   1.2.1 GNU項(xiàng)目 4
   1.2.2 Linux內(nèi)核 5
   1.3 標(biāo)準(zhǔn)化 8
   1.3.1 C編程語言 8
   1.3.2 首個(gè)POSIX標(biāo)準(zhǔn) 9
   1.3.3 X/Open公司和The Open Group 10
   1.3.4 SUSv3和POSIX.1-2001 10
   1.3.5 SUSv4和POSIX.1-2008 12
   1.3.6 UNIX標(biāo)準(zhǔn)時(shí)間表 12
   1.3.7 實(shí)現(xiàn)標(biāo)準(zhǔn) 14
   1.3.8 Linux、標(biāo)準(zhǔn)、Linux標(biāo)準(zhǔn)規(guī)范(Linux Standard Base) 14
   1.4 總結(jié) 15
    第2章 基本概念 17
   2.1 操作系統(tǒng)的核心—內(nèi)核 17
   2.2 shell 19
   2.3 用戶和組 20
   2.4 單根目錄層級(jí)、目錄、鏈接及文件 21
   2.5 文件I/O模型 23
   2.6 程序 24
   2.7 進(jìn)程 25
   2.8 內(nèi)存映射 27
   2.9 靜態(tài)庫和共享庫 28
   2.10 進(jìn)程間通信及同步 28
   2.11 信號(hào) 29
   2.12 線程 30
   2.13 進(jìn)程組和shell任務(wù)控制 30
   2.14 會(huì)話、控制終端和控制進(jìn)程 30
   2.15 偽終端 31
   2.16 日期和時(shí)間 31
   2.17 客戶端服務(wù)器架構(gòu) 32
   2.18 實(shí)時(shí)性 32
   2.19 /proc文件系統(tǒng) 33
   2.20 總結(jié) 33
    第3章 系統(tǒng)編程概念 34
   3.1 系統(tǒng)調(diào)用 34
   3.2 庫函數(shù) 36
   3.3 標(biāo)準(zhǔn)C語言函數(shù)庫;GNU C語言函數(shù)庫(glibc) 37
   3.4 處理來自系統(tǒng)調(diào)用和庫函數(shù)的錯(cuò)誤 38
   3.5 關(guān)于本書示例程序的注意事項(xiàng) 40
   3.5.1 命令行選項(xiàng)及參數(shù) 40
   3.5.2 常用的函數(shù)及頭文件 40
   3.6 可移植性問題 49
   3.6.1 特性測(cè)試宏 49
   3.6.2 系統(tǒng)數(shù)據(jù)類型 51
   3.6.3 其他的可移植性問題 53
   3.7 總結(jié) 54
   3.8 練習(xí) 55
    第4章 文件I/O:通用的I/O模型 56
   4.1 概述 56
   4.2 通用I/O 58
   4.3 打開一個(gè)文件:open() 58
   4.3.1 open()調(diào)用中的flags參數(shù) 60
   4.3.2 open()函數(shù)的錯(cuò)誤 63
   4.3.3 creat()系統(tǒng)調(diào)用 64
   4.4 讀取文件內(nèi)容:read() 64
   4.5 數(shù)據(jù)寫入文件:write() 65
   4.6 關(guān)閉文件:close() 66
   4.7 改變文件偏移量:lseek() 66
   4.8 通用I/O模型以外的操作:ioctl() 70
   4.9 總結(jié) 71
   4.10 練習(xí) 71
    第5章 深入探究文件I/O 72
   5.1 原子操作和競(jìng)爭(zhēng)條件 72
   5.2 文件控制操作:fcntl() 75
   5.3 打開文件的狀態(tài)標(biāo)志 75
   5.4 文件描述符和打開文件之間的關(guān)系 76
   5.5 復(fù)制文件描述符 78
   5.6 在文件特定偏移量處的I/O:pread()和pwrite() 80
   5.7 分散輸入和集中輸出(Scatter-Gather I/O):readv()和writev() 81
   5.8 截?cái)辔募簍runcate()和ftruncate()系統(tǒng)調(diào)用 84
   5.9 非阻塞I/O 84
   5.10 大文件I/O 85
   5.11 /dev/fd目錄 88
   5.12 創(chuàng)建臨時(shí)文件 88
   5.13 總結(jié) 90
   5.14 練習(xí) 90
    第6章 進(jìn)程 92
   6.1 進(jìn)程和程序 92
   6.2 進(jìn)程號(hào)和父進(jìn)程號(hào) 93
   6.3 進(jìn)程內(nèi)存布局 94
   6.4 虛擬內(nèi)存管理 97
   6.5 棧和棧幀 99
   6.6 命令行參數(shù)(argc, argv) 99
   6.7 環(huán)境列表 101
   6.8 執(zhí)行非局部跳轉(zhuǎn):setjmp()和longjmp() 106
   6.9 總結(jié) 111
   6.9 練習(xí) 112
    第7章 內(nèi)存分配 113
   7.1 在堆上分配內(nèi)存 113
   7.1.1 調(diào)整program break:brk()和sbrk() 113
   7.1.2 在堆上分配內(nèi)存:malloc()和free() 114
   7.1.3 malloc()和free()的實(shí)現(xiàn) 117
   7.1.4 在堆上分配內(nèi)存的其他方法 120
   7.2 在堆棧上分配內(nèi)存:alloca() 122
   7.3 總結(jié) 123
   7.4 練習(xí) 123
    第8章 用戶和組 124
   8.1 密碼文件:/etc/passwd 124
   8.2 shadow密碼文件:/etc/shadow 125
   8.3 組文件:/etc/group 126
   8.4 獲取用戶和組的信息 127
   8.5 密碼加密和用戶認(rèn)證 132
   8.6 總結(jié) 135
   8.7 練習(xí) 135
    第9章 進(jìn)程憑證 136
   9.1 實(shí)際用戶ID和實(shí)際組ID 136
   9.2 有效用戶ID和有效組ID 136
   9.3 Set-User-ID和Set-Group-ID程序 137
   9.4 保存set-user-ID和保存set-group-ID 138
   9.5 文件系統(tǒng)用戶ID和組ID 139
   9.6 輔助組ID 140
   9.7 獲取和修改進(jìn)程憑證 140
   9.7.1 獲取和修改實(shí)際、有效和保存設(shè)置標(biāo)識(shí) 140
   9.7.2 獲取和修改文件系統(tǒng)ID 145
   9.7.3 獲取和修改輔助組ID 145
   9.7.4 修改進(jìn)程憑證的系統(tǒng)調(diào)用總結(jié) 146
   9.7.5 示例:顯示進(jìn)程憑證 148
   9.8 總結(jié) 149
   9.9 習(xí)題 150
    第10章 時(shí)間 151
   10.1 日歷時(shí)間(Calendar Time) 151
   10.2 時(shí)間轉(zhuǎn)換函數(shù) 153
   10.2.1 將time_t轉(zhuǎn)換為可打印格式 153
   10.2.2 time_t和分解時(shí)間之間的轉(zhuǎn)換 154
   10.2.3 分解時(shí)間和打印格式之間的轉(zhuǎn)換 155
   10.3 時(shí)區(qū) 161
   10.4 地區(qū)(Locale) 163
   10.5 更新系統(tǒng)時(shí)鐘 167
   10.6 軟件時(shí)鐘(jiffies) 168
   10.7 進(jìn)程時(shí)間 168
   10.8 總結(jié) 171
   10.9 練習(xí) 172
    第11章 系統(tǒng)限制和選項(xiàng) 173
   11.1 系統(tǒng)限制 174
   11.2 在運(yùn)行時(shí)獲取系統(tǒng)限制(和選項(xiàng)) 176
   11.3 運(yùn)行時(shí)獲取與文件相關(guān)的限制(和選項(xiàng)) 178
   11.4 不確定的限制 179
   11.5 系統(tǒng)選項(xiàng) 180
   11.6 總結(jié) 181
   11.7 練習(xí) 182
    第12章 系統(tǒng)和進(jìn)程信息 183
   12.1 /proc文件系統(tǒng) 183
   12.1.1 獲取與進(jìn)程有關(guān)的信息:/proc/PID 183
   12.1.2 /proc 目錄下的系統(tǒng)信息 185
   12.1.3 訪問/proc文件 186
   12.2 系統(tǒng)標(biāo)識(shí):uname() 188
   12.3 總結(jié) 190
   12.4 練習(xí) 190
    第13章 文件I/O緩沖 191
   13.1 文件I/O的內(nèi)核緩沖:緩沖區(qū)高速緩存 191
   13.2 stdio庫的緩沖 194
   13.3 控制文件I/O的內(nèi)核緩沖 196
   13.4 I/O緩沖小結(jié) 200
   13.5 就I/O模式向內(nèi)核提出建議 201
   13.6 繞過緩沖區(qū)高速緩存:直接I/O 202
   13.7 混合使用庫函數(shù)和系統(tǒng)調(diào)用進(jìn)行文件I/O 204
   13.8 總結(jié) 205
   13.9 練習(xí) 205
    第14章 系統(tǒng)編程概念 207
   14.1 設(shè)備專用文件(設(shè)備文件) 207
   14.2 磁盤和分區(qū) 208
   14.3 文件系統(tǒng) 209
   14.4 i節(jié)點(diǎn) 211
   14.5 虛擬文件系統(tǒng)(VFS) 213
   14.6 日志文件系統(tǒng) 214
   14.7 單根目錄層級(jí)和掛載點(diǎn) 215
   14.8 文件系統(tǒng)的掛載和卸載 216
   14.8.1 掛載文件系統(tǒng):mount() 217
   14.8.2 卸載文件系統(tǒng):umount()和umount2() 222
   14.9 高級(jí)掛載特性 223
   14.9.1 在多個(gè)掛載點(diǎn)掛載文件系統(tǒng) 224
   14.9.2 多次掛載同一掛載點(diǎn) 224
   14.9.3 基于每次掛載的掛載標(biāo)志 225
   14.9.4 綁定掛載 225
   14.9.5 遞歸綁定掛載 226
   14.10 虛擬內(nèi)存文件系統(tǒng):tmpfs 227
   14.11 獲得與文件系統(tǒng)有關(guān)的信息:statvfs() 228
   14.12 總結(jié) 229
   14.13 練習(xí) 230
    第15章 文件屬性 231
   15.1 獲取文件信息:stat() 231
   15.2 文件時(shí)間戳 236
   15.2.1 使用utime()和utimes()來改變文件時(shí)間戳 238
   15.2.2 使用utimensat()和futimens()改變文件時(shí)間戳 239
   15.3 文件屬主 241
   15.3.1 新建文件的屬主 241
   15.3.2 改變文件屬主:chown()、fchown()和lchown() 241
   15.4 文件權(quán)限 244
   15.4.1 普通文件的權(quán)限 244
   15.4.2 目錄權(quán)限 246
   15.4.3 權(quán)限檢查算法 246
   15.4.4 檢查對(duì)文件的訪問權(quán)限:access() 248
   15.4.5 Set-User-ID、Set-Group-ID和Sticky位 249
   15.4.6 進(jìn)程的文件模式創(chuàng)建掩碼:umask() 249
   15.4.7 更改文件權(quán)限:chmod()和fchmod() 251
   15.5 I節(jié)點(diǎn)標(biāo)志(ext2擴(kuò)展文件屬性) 252
   15.6 總結(jié) 256
   15.7 練習(xí) 256
    第16章 擴(kuò)展屬性 258
   16.1 概述 258
   16.2 擴(kuò)展屬性的實(shí)現(xiàn)細(xì)節(jié) 260
   16.3 操控?cái)U(kuò)展屬性的系統(tǒng)調(diào)用 260
   16.4 總結(jié) 264
   16.5 練習(xí) 264
    第17章 訪問控制列表 265
   17.1 概述 265
   17.2 ACL權(quán)限檢查算法 267
   17.3 ACL的長(zhǎng)、短文本格式 268
   17.4 ACL_mask型ACE和ACL組分類 269
   17.5 getfacl和setfacl命令 270
   17.6 默認(rèn)ACL與文件創(chuàng)建 271
   17.7 ACL在實(shí)現(xiàn)方面的限制 272
   17.8 ACL API 273
   17.9 總結(jié) 280
   17.10 練習(xí) 280
    第18章 目錄與鏈接 281
   18.1 目錄和(硬)鏈接 281
   18.2 符號(hào)(軟)鏈接 283
   18.3 創(chuàng)建和移除(硬)鏈接:link()和 unlink() 286
   18.4 更改文件名:rename() 289
   18.5 使用符號(hào)鏈接:symlink()和readlink() 290
   18.6 創(chuàng)建和移除目錄:mkdir()和rmdir() 291
   18.7 移除一個(gè)文件或目錄:remove() 292
   18.8 讀目錄:opendir()和readdir() 292
   18.9 文件樹遍歷:nftw() 297
   18.10 進(jìn)程的當(dāng)前工作目錄 301
   18.11 針對(duì)目錄文件描述符的相關(guān)操作 303
   18.12 改變進(jìn)程的根目錄:chroot() 304
   18.13 解析路徑名:realpath() 306
   18.14 解析路徑名字符串:dirname()和basename() 307
   18.15 總結(jié) 309
   18.16 練習(xí) 309
    第19章 監(jiān)控文件事件 311
   19.1 概述 311
   19.2 inotify API 312
   19.3 inotify事件 313
   19.4 讀取inotify事件 315
   19.5 隊(duì)列限制和/proc文件 319
   19.6 監(jiān)控文件的舊有系統(tǒng):dnotify 320
   19.7 總結(jié) 320
   19.8 練習(xí) 320
    第20章 信號(hào):基本概念 321
   20.1 概念和概述 321
   20.2 信號(hào)類型和默認(rèn)行為 323
   20.3 改變信號(hào)處置:signal() 329
   20.4 信號(hào)處理器簡(jiǎn)介 330
   20.5 發(fā)送信號(hào):kill() 333
   20.6 檢查進(jìn)程的存在 334
   20.7 發(fā)送信號(hào)的其他方式:raise()和killpg() 335
   20.8 顯示信號(hào)描述 336
   20.9 信號(hào)集 337
   20.10 信號(hào)掩碼(阻塞信號(hào)傳遞) 339
   20.11 處于等待狀態(tài)的信號(hào) 341
   20.12 不對(duì)信號(hào)進(jìn)行排隊(duì)處理 341
   20.13 改變信號(hào)處置:sigaction () 345
   20.14 等待信號(hào):pause() 346
   20.15 總結(jié) 347
   20.16 練習(xí) 347
    第21章 信號(hào):信號(hào)處理器函數(shù) 348
   21.1 設(shè)計(jì)信號(hào)處理器函數(shù) 348
   21.1.1 再論信號(hào)的非隊(duì)列化處理 348
   21.1.2 可重入函數(shù)和異步信號(hào)安全函數(shù) 349
   21.1.3 全局變量和sig_atomic_t數(shù)據(jù)類型 353
   21.2 終止信號(hào)處理器函數(shù)的其他方法 354
   21.2.1 在信號(hào)處理器函數(shù)中執(zhí)行非本地跳轉(zhuǎn) 354
   21.2.2 異常終止進(jìn)程:abort() 358
   21.3 在備選棧中處理信號(hào):sigaltstack() 358
   21.4 SA_SIGINFO標(biāo)志 361
   21.5 系統(tǒng)調(diào)用的中斷和重啟 366
   21.6 總結(jié) 368
   21.7 練習(xí) 369
    第22章 信號(hào):高級(jí)特性 370
   22.1 核心轉(zhuǎn)儲(chǔ)文件 370
   22.2 傳遞、處置及處理的特殊情況 372
   22.3 可中斷和不可中斷的進(jìn)程睡眠狀態(tài) 373
   22.4 硬件產(chǎn)生的信號(hào) 374
   22.5 信號(hào)的同步生成和異步生成 374
   22.6 信號(hào)傳遞的時(shí)機(jī)與順序 375
   22.7 signal()的實(shí)現(xiàn)及可移植性 376
   22.8 實(shí)時(shí)信號(hào) 378
   22.8.1 發(fā)送實(shí)時(shí)信號(hào) 379
   22.8.2 處理實(shí)時(shí)信號(hào) 380
   22.9 使用掩碼來等待信號(hào):sigsuspend() 384
   22.10 以同步方式等待信號(hào) 387
   22.11 通過文件描述符來獲取信號(hào) 390
   22.12 利用信號(hào)進(jìn)行進(jìn)程間通信 393
   22.13 早期的信號(hào)API(System V和BSD) 393
   22.14 總結(jié) 395
   22.15 練習(xí) 396
    第23章 定時(shí)器與休眠 397
   23.1 間隔定時(shí)器 397
   23.2 定時(shí)器的調(diào)度及精度 402
   23.3 為阻塞操作設(shè)置超時(shí) 402
   23.4 暫停運(yùn)行(休眠)一段固定時(shí)間 404
   23.4.1 低分辨率休眠:sleep() 404
   23.4.2 高分辨率休眠:nanosleep() 404
   23.5 POSIX時(shí)鐘 407
   23.5.1 獲取時(shí)鐘的值:clock_gettime() 407
   23.5.2 設(shè)置時(shí)鐘的值:clock_settime() 408
   23.5.3 獲取特定進(jìn)程或線程的時(shí)鐘ID 408
   23.5.4 高分辨率休眠的改進(jìn)版:clock_nanosleep() 409
   23.6 POSIX間隔式定時(shí)器 410
   23.6.1 創(chuàng)建定時(shí)器:timer_create() 410
   23.6.2 配備和解除定時(shí)器:timer_settime() 412
   23.6.3 獲取定時(shí)器的當(dāng)前值:timer_gettime() 413
   23.6.4 刪除定時(shí)器:timer_delete() 413
   23.6.5 通過信號(hào)發(fā)出通知 414
   23.6.6 定時(shí)器溢出 417
   23.6.7 通過線程來通知 417
   23.7 利用文件描述符進(jìn)行通知的定時(shí)器:timerfd API 420
   23.8 總結(jié) 423
   23.9 練習(xí) 424
    第24章 進(jìn)程的創(chuàng)建 425
   24.1 fork()、exit()、wait()以及execve()的簡(jiǎn)介 425
   24.2 創(chuàng)建新進(jìn)程:fork() 427
   24.2.1 父、子進(jìn)程間的文件共享 428
   24.2.2 fork()的內(nèi)存語義 430
   24.3 系統(tǒng)調(diào)用vfork() 433
   24.4 fork()之后的競(jìng)爭(zhēng)條件(Race Condition) 434
   24.5 同步信號(hào)以規(guī)避競(jìng)爭(zhēng)條件 436
   24.6 總結(jié) 438
   24.7 練習(xí) 439
    第25章 進(jìn)程的終止 440
   25.1 進(jìn)程的終止:_exit()和exit() 440
   25.2 進(jìn)程終止的細(xì)節(jié) 441
   25.3 退出處理程序 442
   25.4 fork()、stdio緩沖區(qū)以及_exit()之間的交互 445
   25.5 總結(jié) 446
   25.6 練習(xí) 446
    第26章 監(jiān)控子進(jìn)程 447
   26.1 等待子進(jìn)程 447
   26.1.1 系統(tǒng)調(diào)用wait() 447
   26.1.2 系統(tǒng)調(diào)用waitpid() 449
   26.1.3 等待狀態(tài)值 450
   26.1.4 從信號(hào)處理程序中終止進(jìn)程 454
   26.1.5 系統(tǒng)調(diào)用waitid() 455
   26.1.6 系統(tǒng)調(diào)用wait3()和wait4() 456
   26.2 孤兒進(jìn)程與僵尸進(jìn)程 457
   26.3 SIGCHLD信號(hào) 459
   26.3.1 為SIGCHLD建立信號(hào)處理程序 459
   26.3.2 向已停止的子進(jìn)程發(fā)送SIGCHLD信號(hào) 462
   26.3.3 忽略終止的子進(jìn)程 462
   26.4 總結(jié) 464
   26.5 練習(xí) 464
    第27章 程序的執(zhí)行 465
   27.1 執(zhí)行新程序:execve() 465
   27.2 exec()庫函數(shù) 468
   27.2.1 環(huán)境變量PATH 469
   27.2.2 將程序參數(shù)指定為列表 470
   27.2.3 將調(diào)用者的環(huán)境傳遞給新程序 471
   27.2.4 執(zhí)行由文件描述符指代的程序:fexecve() 471
   27.3 解釋器腳本 472
   27.4 文件描述符與exec() 474
   27.5 信號(hào)與exec() 477
   27.6 執(zhí)行shell命令:system() 477
   27.7 system()的實(shí)現(xiàn) 480
   27.8 總結(jié) 485
   27.9 練習(xí) 485
    第28章 詳述進(jìn)程創(chuàng)建和程序執(zhí)行 487
   28.1 進(jìn)程記賬 487
   28.2 系統(tǒng)調(diào)用clone() 493
   28.2.1 clone()的flags參數(shù) 497
   28.2.2 因克隆生成的子進(jìn)程而對(duì)waitpid()進(jìn)行的擴(kuò)展 503
   28.3 進(jìn)程的創(chuàng)建速度 503
   28.4 exec()和fork()對(duì)進(jìn)程屬性的影響 505
   28.5 總結(jié) 508
   28.6 練習(xí) 508
    第29章 線程:介紹 509
   29.1 概述 509
   29.2 Pthreads API的詳細(xì)背景 511
   29.3 創(chuàng)建線程 513
   29.4 終止線程 514
   29.5 線程ID(Thread ID) 514
   29.6 連接(joining)已終止的線程 515
   29.7 線程的分離 517
   29.8 線程屬性 518
   29.9 線程VS進(jìn)程 518
   29.10 總結(jié) 519
   29.11 練習(xí) 519
    第30章 線程:線程同步 521
   30.1 保護(hù)對(duì)共享變量的訪問:互斥量 521
   30.1.1 靜態(tài)分配的互斥量 524
   30.1.2 加鎖和解鎖互斥量 524
   30.1.3 互斥量的性能 526
   30.1.4 互斥量的死鎖 527
   30.1.5 動(dòng)態(tài)初始化互斥量 527
   30.1.6 互斥量的屬性 528
   30.1.7 互斥量類型 528
   30.2 通知狀態(tài)的改變:條件變量(Condition Variable) 529
   30.2.1 由靜態(tài)分配的條件變量 530
   30.2.2 通知和等待條件變量 531
   30.2.3 測(cè)試條件變量的判斷條件(predicate) 534
   30.2.4 示例程序:連接任意已終止線程 534
   30.2.5 經(jīng)由動(dòng)態(tài)分配的條件變量 537
   30.3 總結(jié) 538
   30.4 練習(xí) 538
    第31章 線程:線程安全和每線程存儲(chǔ) 539
   31.1 線程安全(再論可重入性) 539
   31.2 一次性初始化 541
   31.3 線程特有數(shù)據(jù) 542
   31.3.1 庫函數(shù)視角下的線程特有數(shù)據(jù) 542
   31.3.2 線程特有數(shù)據(jù)API概述 543
   31.3.3 線程特有數(shù)據(jù)API詳述 543
   31.3.4 使用線程特有數(shù)據(jù)API 545
   31.3.5 線程特有數(shù)據(jù)的實(shí)現(xiàn)限制 549
   31.4 線程局部存儲(chǔ) 549
   31.5 總結(jié) 550
   31.6 練習(xí) 551
    第32章 線程:線程取消 552
   32.1 取消一個(gè)線程 552
   32.2 取消狀態(tài)及類型 552
   32.3 取消點(diǎn) 553
   32.4 線程可取消性的檢測(cè) 556
   32.5 清理函數(shù)(cleanup handler) 556
   32.6 異步取消 559
   32.7 總結(jié) 560
    第33章 線程:更多細(xì)節(jié) 561
   33.1 線程?!?61
   33.2 線程和信號(hào) 562
   33.2.1 UNIX信號(hào)模型如何映射到線程中 562
   33.2.2 操作線程信號(hào)掩碼 563
   33.2.3 向線程發(fā)送信號(hào) 563
   33.2.4 妥善處理異步信號(hào) 564
   33.3 線程和進(jìn)程控制 564
   33.4 線程實(shí)現(xiàn)模型 566
   33.5 Linux POSIX線程的實(shí)現(xiàn) 567
   33.5.1 LinuxThreads 567
   33.5.2 NPTL 569
   33.5.3 哪一種線程實(shí)現(xiàn) 570
   33.6 Pthread API的高級(jí)特性 572
   33.7 總結(jié) 572
   33.8 練習(xí) 572
    下冊(cè)
    第34章 進(jìn)程組、會(huì)話和作業(yè)控制 573
   34.1 概述 573
   34.2 進(jìn)程組 575
   34.3 會(huì)話 577
   34.4 控制終端和控制進(jìn)程 578
   34.5 前臺(tái)和后臺(tái)進(jìn)程組 580
   34.6 SIGHUP信號(hào) 581
   34.6.1 在shell中處理SIGHUP信號(hào) 581
   34.6.2 SIGHUP和控制進(jìn)程的終止 583
   34.7 作業(yè)控制 585
   34.7.1 在shell中使用作業(yè)控制 585
   34.7.2 實(shí)現(xiàn)作業(yè)控制 587
   34.7.3 處理作業(yè)控制信號(hào) 591
   34.7.4 孤兒進(jìn)程組(SIGHUP回顧) 594
   34.8 總結(jié) 598
   34.9 習(xí)題 599
    第35章 進(jìn)程優(yōu)先級(jí)和調(diào)度 600
   35.1 進(jìn)程優(yōu)先級(jí)(nice值) 600
   35.2 實(shí)時(shí)進(jìn)程調(diào)度概述 603
   35.2.1 SCHED_RR策略 604
   35.2.2 SCHED_FIFO策略 605
   35.2.3 SCHED_BATCH和SCHED_IDLE策略 605
   35.3 實(shí)時(shí)進(jìn)程調(diào)用API 605
   35.3.1 實(shí)時(shí)優(yōu)先級(jí)范圍 606
   35.3.2 修改和獲取策略和優(yōu)先級(jí) 606
   35.3.3 釋放CPU 611
   35.3.4 SCHED_RR時(shí)間片 611
   35.4 CPU親和力 612
   35.5 總結(jié) 614
   35.6 習(xí)題 615
    第36章 進(jìn)程資源 617
   36.1 進(jìn)程資源使用 617
   36.2 進(jìn)程資源限制 619
   36.3 特定資源限制細(xì)節(jié) 623
   36.4 總結(jié) 627
   36.5 習(xí)題 627
    第37章 DAEMON 628
   37.1 概述 628
   37.2 創(chuàng)建一個(gè)daemon 629
   37.3 編寫daemon指南 632
   37.4 使用SIGHUP重新初始化一個(gè)daemon 632
   37.5 使用syslog記錄消息和錯(cuò)誤 635
   37.5.1 概述 635
   37.5.2 syslog API 636
   37.5.3 /etc/syslog.conf文件 640
   37.6 總結(jié) 641
   37.7 習(xí)題 641
    第38章 編寫安全的特權(quán)程序 642
   38.1 是否需要一個(gè)Set-User-ID或Set-Group-ID程序? 642
   38.2 以最小權(quán)限操作 643
   38.3 小心執(zhí)行程序 645
   38.4 避免暴露敏感信息 646
   38.5 確定進(jìn)程的邊界 647
   38.6 小心信號(hào)和競(jìng)爭(zhēng)條件 647
   38.7 執(zhí)行文件操作和文件I/O的缺陷 648
   38.8 不要完全相信輸入和環(huán)境 648
   38.9 小心緩沖區(qū)溢出 649
   38.10 小心拒絕服務(wù)攻擊 650
   38.11 檢查返回狀態(tài)和安全地處理失敗情況 651
   38.12 總結(jié) 651
   38.13 習(xí)題 652
    第39章 能力 653
   39.1 能力基本原理 653
   39.2 Linux能力 654
   39.3 進(jìn)程和文件能力 654
   39.3.1 進(jìn)程能力 654
   39.3.2 文件能力 655
   39.3.3 進(jìn)程許可和有效能力集的目的 657
   39.3.4 文件許可和有效能力集的目的 657
   39.3.5 進(jìn)程和文件可繼承集的目的 658
   39.3.6 在shell中給文件賦予能力和查看文件能力 658
   39.4 現(xiàn)代能力實(shí)現(xiàn) 659
   39.5 在exec()中轉(zhuǎn)變進(jìn)程能力 659
   39.5.1 能力邊界集 660
   39.5.2 保持root語義 660
   39.6 改變用戶ID對(duì)進(jìn)程能力的影響 661
   39.7 用編程的方式改變進(jìn)程能力 661
   39.8 創(chuàng)建僅包含能力的環(huán)境 665
   39.9 發(fā)現(xiàn)程序所需的能力 667
   39.10 不具備文件能力的老式內(nèi)核和系統(tǒng) 667
   39.11 總結(jié) 669
   39.12 習(xí)題 669
    第40章 登錄記賬 670
   40.1 utmp和wtmp文件概述 670
   40.2 utmpx API 671
   40.3 utmpx結(jié)構(gòu) 671
   40.4 從utmp和wtmp文件中檢索信息 673
   40.5 獲取登錄名稱:getlogin() 676
   40.6 為登錄會(huì)話更新utmp和wtmp文件 677
   40.7 lastlog文件 681
   40.8 總結(jié) 683
   40.9 習(xí)題 683
    第41章 共享庫基礎(chǔ) 684
   41.1 目標(biāo)庫 684
   41.2 靜態(tài)庫 685
   41.3 共享庫概述 686
   41.4 創(chuàng)建和使用共享庫——首回合 687
   41.4.1 創(chuàng)建一個(gè)共享庫 687
   41.4.2 位置獨(dú)立的代碼 687
   41.4.3 使用一個(gè)共享庫 688
   41.4.4 共享庫soname 689
   41.5 使用共享庫的有用工具 691
   41.6 共享庫版本和命名規(guī)則 692
   41.7 安裝共享庫 694
   41.8 兼容與不兼容庫比較 696
   41.9 升級(jí)共享庫 697
   41.10 在目標(biāo)文件中指定庫搜索目錄 698
   41.11 在運(yùn)行時(shí)找出共享庫 700
   41.12 運(yùn)行時(shí)符號(hào)解析 700
   41.13 使用靜態(tài)庫取代共享庫 701
   41.14 總結(jié) 702
   41.15 習(xí)題 703
    第42章 共享庫高級(jí)特性 704
   42.1 動(dòng)態(tài)加載庫 704
   42.1.1 打開共享庫:dlopen() 705
   42.1.2 錯(cuò)誤診斷:dlerror() 706
   42.1.3 獲取符號(hào)的地址:dlsym() 707
   42.1.4 關(guān)閉共享庫:dlclose() 709
   42.1.5 獲取與加載的符號(hào)相關(guān)的信息:dladdr() 710
   42.1.6 在主程序中訪問符號(hào) 710
   42.2 控制符號(hào)的可見性 710
   42.3 鏈接器版本腳本 711
   42.3.1 使用版本腳本控制符號(hào)的可見性 712
   42.3.2 符號(hào)版本化 713
   42.4 初始化和終止函數(shù) 715
   42.5 預(yù)加載共享庫 716
   42.6 監(jiān)控動(dòng)態(tài)鏈接器:LD_DEBUG 716
   42.7 總結(jié) 717
   42.8 習(xí)題 718
    第43章 進(jìn)程間通信簡(jiǎn)介 719
   43.1 IPC工具分類 719
   43.2 通信工具 720
   43.3 同步工具 721
   43.4 IPC工具比較 723
   43.5 總結(jié) 727
   43.6 習(xí)題 727
    第44章 管道和FIFO 728
   44.1 概述 728
   44.2 創(chuàng)建和使用管道 730
   44.3 將管道作為一種進(jìn)程同步的方法 735
   44.4 使用管道連接過濾器 737
   44.5 通過管道與Shell命令進(jìn)行通信:popen() 739
   44.6 管道和stdio緩沖 743
   44.7 FIFO 743
   44.8 使用管道實(shí)現(xiàn)一個(gè)客戶端/服務(wù)器應(yīng)用程序 745
   44.9 非阻塞I/O 751
   44.10 管道和FIFO中read()和write()的語義 752
   44.11 總結(jié) 753
   44.12 習(xí)題 754
    第45章 System V IPC介紹 756
   45.1 概述 757
   45.2 IPC Key 759
   45.3 關(guān)聯(lián)數(shù)據(jù)結(jié)構(gòu)和對(duì)象權(quán)限 761
   45.4 IPC標(biāo)識(shí)符和客戶端/服務(wù)器應(yīng)用程序 763
   45.5 System V IPC get調(diào)用使用的算法 764
   45.6 ipcs和ipcrm命令 766
   45.7 獲取所有IPC對(duì)象列表 767
   45.8 IPC限制 767
   45.9 總結(jié) 768
   45.10 習(xí)題 768
    第46章 System V消息隊(duì)列 769
   46.1 創(chuàng)建或打開一個(gè)消息隊(duì)列 769
   46.2 交換消息 771
   46.2.1 發(fā)送消息 772
   46.2.2 接收消息 774
   46.3 消息隊(duì)列控制操作 777
   46.4 消息隊(duì)列關(guān)聯(lián)數(shù)據(jù)結(jié)構(gòu) 778
   46.5 消息隊(duì)列的限制 780
   46.6 顯示系統(tǒng)中所有消息隊(duì)列 781
   46.7 使用消息隊(duì)列實(shí)現(xiàn)客戶端/服務(wù)器應(yīng)用程序 783
   46.8 使用消息隊(duì)列實(shí)現(xiàn)文件服務(wù)器應(yīng)用程序 784
   46.9 System V消息隊(duì)列的缺點(diǎn) 790
   46.10 總結(jié) 790
   46.11 習(xí)題 791
    第47章 System V信號(hào)量 792
   47.1 概述 793
   47.2 創(chuàng)建或打開一個(gè)信號(hào)量集 795
   47.3 信號(hào)量控制操作 796
   47.4 信號(hào)量關(guān)聯(lián)數(shù)據(jù)結(jié)構(gòu) 798
   47.5 信號(hào)量初始化 801
   47.6 信號(hào)量操作 803
   47.7 多個(gè)阻塞信號(hào)量操作的處理 809
   47.8 信號(hào)量撤銷值 810
   47.9 實(shí)現(xiàn)一個(gè)二元信號(hào)量協(xié)議 811
   47.10 信號(hào)量限制 814
   47.11 System V信號(hào)量的缺點(diǎn) 815
   47.12 總結(jié) 816
   47.13 習(xí)題 817
    第48章 System V共享內(nèi)存 818
   48.1 概述 818
   48.2 創(chuàng)建或打開一個(gè)共享內(nèi)存段 819
   48.3 使用共享內(nèi)存 820
   48.4 示例:通過共享內(nèi)存?zhèn)鬏敂?shù)據(jù) 821
   48.5 共享內(nèi)存在虛擬內(nèi)存中的位置 825
   48.6 在共享內(nèi)存中存儲(chǔ)指針 828
   48.7 共享內(nèi)存控制操作 829
   48.8 共享內(nèi)存關(guān)聯(lián)數(shù)據(jù)結(jié)構(gòu) 830
   48.9 共享內(nèi)存的限制 832
   48.10 總結(jié) 833
   48.11 習(xí)題 833
    第49章 內(nèi)存映射 835
   49.1 概述 835
   49.2 創(chuàng)建一個(gè)映射:mmap() 837
   49.3 解除映射區(qū)域:munmap() 840
   49.4 文件映射 840
   49.4.1 私有文件映射 841
   49.4.2 共享文件映射 842
   49.4.3 邊界情況 845
   49.4.4 內(nèi)存保護(hù)和文件訪問模式交互 846
   49.5 同步映射區(qū)域:msync() 847
   49.6 其他mmap()標(biāo)記 848
   49.7 匿名映射 849
   49.8 重新映射一個(gè)映射區(qū)域:mremap() 852
   49.9 MAP_NORESERVE和過度利用交換空間 853
   49.10 MAP_FIXED標(biāo)記 854
   49.11 非線性映射:remap_file_pages() 855
   49.12 總結(jié) 857
   49.13 習(xí)題 858
    第50章 虛擬內(nèi)存操作 859
   50.1 改變內(nèi)存保護(hù):mprotect() 859
   50.2 內(nèi)存鎖:mlock()和mlockatt() 861
   50.3 確定內(nèi)存駐留性:mincore() 864
   50.4 建議后續(xù)的內(nèi)存使用模式:madvise() 866
   50.5 小結(jié) 868
   50.6 習(xí)題 868
    第51章 POSIX IPC介紹 869
   51.1 API概述 869
   51.2 System V IPC與POSIX IPC比較 872
   51.3 總結(jié) 873
    第52章 POSIX消息隊(duì)列 874
   52.1 概述 874
   52.2 打開、關(guān)閉和斷開鏈接消息隊(duì)列 875
   52.3 描述符和消息隊(duì)列之間的關(guān)系 877
   52.4 消息隊(duì)列特性 878
   52.5 交換消息 882
   52.5.1 發(fā)送消息 882
   52.5.2 接收消息 883
   52.5.3 在發(fā)送和接收消息時(shí)設(shè)置超時(shí)時(shí)間 885
   52.6 消息通知 886
   52.6.1 通過信號(hào)接收通知 887
   52.6.2 通過線程接收通知 889
   52.7 Linux特有的特性 891
   52.8 消息隊(duì)列限制 892
   52.9 POSIX和System V消息隊(duì)列比較 893
   52.10 總結(jié) 894
   52.11 習(xí)題 894
    第53章 POSIX信號(hào)量 895
   53.1 概述 895
   53.2 命名信號(hào)量 895
   53.2.1 打開一個(gè)命名信號(hào)量 896
   53.2.2 關(guān)閉一個(gè)信號(hào)量 898
   53.2.3 刪除一個(gè)命名信號(hào)量 898
   53.3 信號(hào)量操作 899
   53.3.1 等待一個(gè)信號(hào)量 899
   53.3.2 發(fā)布一個(gè)信號(hào)量 901
   53.3.3 獲取信號(hào)量的當(dāng)前值 901
   53.4 未命名信號(hào)量 903
   53.4.1 初始化一個(gè)未命名信號(hào)量 904
   53.4.2 銷毀一個(gè)未命名信號(hào)量 906
   53.5 與其他同步技術(shù)比較 906
   53.6 信號(hào)量的限制 907
   53.7 總結(jié) 908
   53.8 習(xí)題 908
    第54章 POSIX共享內(nèi)存 909
   54.1 概述 909
   54.2 創(chuàng)建共享內(nèi)存對(duì)象 910
   54.3 使用共享內(nèi)存對(duì)象 913
   54.4 刪除共享內(nèi)存對(duì)象 915
   54.5 共享內(nèi)存APIs比較 915
   54.6 總結(jié) 916
   54.7 習(xí)題 917
    第55章 文件加鎖 918
   55.1 概述 918
   55.2 使用flock()給文件加鎖 920
   55.2.1 鎖繼承與釋放的語義 922
   55.2.2 flock()的限制 923
   55.3 使用fcntl()給記錄加鎖 923
   55.3.1 死鎖 928
   55.3.2 示例:一個(gè)交互式加鎖程序 928
   55.3.3 示例:一個(gè)加鎖函數(shù)庫 931
   55.3.4 鎖的限制和性能 933
   55.3.5 鎖繼承和釋放的語義 934
   55.3.6 鎖定餓死和排隊(duì)加鎖請(qǐng)求的優(yōu)先級(jí) 935
   55.4 強(qiáng)制加鎖 935
   55.5 /proc/locks文件 938
   55.6 僅運(yùn)行一個(gè)程序的單個(gè)實(shí)例 939
   55.7 老式加鎖技術(shù) 941
   55.8 總結(jié) 942
   55.9 習(xí)題 943
    第56章 SOCKET:介紹 945
   56.1 概述 945
   56.2 創(chuàng)建一個(gè)socket:socket() 948
   56.3 將socket綁定到地址:bind() 948
   56.4 通用socket地址結(jié)構(gòu):struct sockaddr 949
   56.5 流socket 950
   56.5.1 監(jiān)聽接入連接:listen() 951
   56.5.2 接受連接:accept() 952
   56.5.3 連接到對(duì)等socket:connect() 952
   56.5.4 流socket I/O 953
   56.5.5 連接終止:close() 953
   56.6 數(shù)據(jù)報(bào)socket 953
   56.6.1 交換數(shù)據(jù)報(bào):recvfrom和sendto() 954
   56.6.2 在數(shù)據(jù)報(bào)socket上使用connect() 955
   56.7 總結(jié) 956
    第57章 SOCKET:UNIX DOMAIN 957
   57.1 UNIX domain socket地址:struct sockaddr_un 957
   57.2 UNIX domain中的流socket 959
   57.3 UNIX domain中的數(shù)據(jù)報(bào)socket 962
   57.4 UNIX domain socket權(quán)限 965
   57.5 創(chuàng)建互聯(lián)socket對(duì):socketpair() 965
   57.6 Linux抽象socket名空間 966
   57.7 總結(jié) 967
   57.8 習(xí)題 967
    第58章 SOCKET:TCP/IP網(wǎng)絡(luò)基礎(chǔ) 968
   58.1 因特網(wǎng) 968
   58.2 聯(lián)網(wǎng)協(xié)議和層 969
   58.3 數(shù)據(jù)鏈路層 971
   58.4 網(wǎng)絡(luò)層:IP 971
   58.5 IP地址 973
   58.6 傳輸層 975
   58.6.1 端口號(hào) 975
   58.6.2 用戶數(shù)據(jù)報(bào)協(xié)議(UDP) 976
   58.6.3 傳輸控制協(xié)議(TCP) 977
   58.7 請(qǐng)求注解(RFC) 979
   58.8 總結(jié) 980
    第59章 SOCKET:Internet DOMAIN 982
   59.1 Internet domain socket 982
   59.2 網(wǎng)絡(luò)字節(jié)序 982
   59.3 數(shù)據(jù)表示 984
   59.4 Internet socket地址 986
   59.5 主機(jī)和服務(wù)轉(zhuǎn)換函數(shù)概述 988
   59.6 inet_pton()和inet_ntop()函數(shù) 989
   59.7 客戶端-服務(wù)器示例(數(shù)據(jù)報(bào)socket) 990
   59.8 域名系統(tǒng)(DNS) 992
   59.9 /etc/services文件 994
   59.10 獨(dú)立于協(xié)議的主機(jī)和服務(wù)轉(zhuǎn)換 995
   59.10.1 getaddrinfo()函數(shù) 996
   59.10.2 釋放addrinfo列表:freeaddrinfo() 998
   59.10.3 錯(cuò)誤診斷:gai_strerror() 999
   59.10.4 getnameinfo()函數(shù) 999
   59.11 客戶端-服務(wù)器示例(流式socket) 1000
   59.12 Internet domain socket庫 1006
   59.13 過時(shí)的主機(jī)和服務(wù)轉(zhuǎn)換API 1010
   59.13.1 inet_aton()和inet_ntoa()函數(shù) 1010
   59.13.2 gethostbyname()和gethostbyaddr()函數(shù) 1010
   59.13.3 getserverbyname()和getserverbyport()函數(shù) 1012
   59.14 UNIX與Internet domain socket比較 1013
   59.15 更多信息 1014
   59.16 總結(jié) 1014
   59.17 習(xí)題 1015
    第60章 SOCKET:服務(wù)器設(shè)計(jì) 1016
   60.1 迭代型和并發(fā)型服務(wù)器 1016
   60.2 迭代型UDP echo服務(wù)器 1016
   60.3 并發(fā)型TCP echo服務(wù)器 1019
   60.4 并發(fā)型服務(wù)器的其他設(shè)計(jì)方案 1021
   60.5 inetd(Internet超級(jí)服務(wù)器)守護(hù)進(jìn)程 1023
   60.6 總結(jié) 1027
   60.7 練習(xí) 1027
    第61章 SOCKET:高級(jí)主題 1028
   61.1 流式套接字上的部分讀和部分寫 1028
   61.2 shutdown()系統(tǒng)調(diào)用 1030
   61.3 專用于套接字的I/O系統(tǒng)調(diào)用:recv()和send() 1033
   61.4 sendfile()系統(tǒng)調(diào)用 1034
   61.5 獲取套接字地址 1036
   61.6 深入探討TCP協(xié)議 1039
   61.6.1 TCP報(bào)文的格式 1039
   61.6.2 TCP序列號(hào)和確認(rèn)機(jī)制 1041
   61.6.3 TCP協(xié)議狀態(tài)機(jī)以及狀態(tài)遷移圖 1041
   61.6.4 TCP連接的建立 1043
   61.6.5 TCP連接的終止 1044
   61.6.6 在TCP套接字上調(diào)用shutdown() 1045
   61.6.7 TIME_WAIT狀態(tài) 1045
   61.7 監(jiān)視套接字:netstat 1047
   61.8 使用tcpdump來監(jiān)視TCP流量 1048
   61.9 套接字選項(xiàng) 1049
   61.10 SO_REUSEADDR套接字選項(xiàng) 1050
   61.11 在accept()中繼承標(biāo)記和選項(xiàng) 1051
   61.12 TCP vs UDP 1052
   61.13 高級(jí)功能 1053
   61.13.1 帶外數(shù)據(jù) 1053
   61.13.2 sendmsg()和recvmsg()系統(tǒng)調(diào)用 1053
   61.13.3 傳遞文件描述符 1054
   61.13.4 接收發(fā)送端的憑據(jù) 1054
   61.13.5 順序數(shù)據(jù)包套接字 1055
   61.13.6 SCTP以及DCCP傳輸層協(xié)議 1055
   61.14 總結(jié) 1056
   61.15 練習(xí) 1056
    第62章 終端 1058
   62.1 整體概覽 1059
   62.2 獲取和修改終端屬性 1060
   62.3 stty命令 1062
   62.4 終端特殊字符 1063
   62.5 終端標(biāo)志 1068
   62.6 終端的I/O模式 1073
   62.6.1 規(guī)范模式 1073
   62.6.2 非規(guī)范模式 1074
   62.6.3 加工模式、cbreak模式以及原始模式 1075
   62.7 終端線速(比特率) 1081
   62.8 終端的行控制 1082
   62.9 終端窗口大小 1084
   62.10 終端標(biāo)識(shí) 1085
   62.11 總結(jié) 1086
   62.12 練習(xí) 1087
    第63章 其他備選的I/O模型 1088
   63.1 整體概覽 1088
   63.1.1 水平觸發(fā)和邊緣觸發(fā) 1091
   63.1.2 在備選的I/O模型中采用非阻塞I/O 1092
   63.2 I/O多路復(fù)用 1092
   63.2.1 select()系統(tǒng)調(diào)用 1092
   63.2.2 poll()系統(tǒng)調(diào)用 1097
   63.2.3 文件描述符何時(shí)就緒? 1101
   63.2.4 比較select()和poll() 1103
   63.2.5 select()和poll()存在的問題 1105
   63.3 信號(hào)驅(qū)動(dòng)I/O 1105
   63.3.1 何時(shí)發(fā)送“I/O就緒”信號(hào) 1109
   63.3.2 優(yōu)化信號(hào)驅(qū)動(dòng)I/O的使用 1110
   63.4 epoll編程接口 1113
   63.4.1 創(chuàng)建epoll實(shí)例:epoll_create() 1113
   63.4.2 修改epoll的興趣列表:epoll_ctl() 1114
   63.4.3 事件等待:epoll_wait() 1115
   63.4.4 深入探究epoll的語義 1120
   63.4.5 epoll同I/O多路復(fù)用的性能對(duì)比 1121
   63.4.6 邊緣觸發(fā)通知 1122
   63.5 在信號(hào)和文件描述符上等待 1124
   63.5.1 pselect()系統(tǒng)調(diào)用 1125
   63.5.2 self-pipe技巧 1126
   63.6 總結(jié) 1128
   63.7 練習(xí) 1129
    第64章 偽終端 1130
   64.1 整體概覽 1130
   64.2 UNIX98偽終端 1133
   64.2.1 打開未使用的主設(shè)備:posix_openpt() 1134
   64.2.2 修改從設(shè)備屬主和權(quán)限:grantpt() 1135
   64.2.3 解鎖從設(shè)備:unlockpt() 1135
   64.2.4 獲取從設(shè)備名稱:ptsname() 1136
   64.3 打開主設(shè)備:ptyMasterOpen() 1136
   64.4 將進(jìn)程連接到偽終端:ptyFork() 1138
   64.5 偽終端I/O 1140
   64.6 實(shí)現(xiàn)script(1)程序 1142
   64.7 終端屬性和窗口大小 1146
   64.8 BSD風(fēng)格的偽終端 1146
   64.9 總結(jié) 1148
   64.10 練習(xí) 1149
    附錄A 跟蹤系統(tǒng)調(diào)用 1151
    附錄B 解析命令行選項(xiàng) 1153
    附錄C 對(duì)NULL指針做轉(zhuǎn)型 1159
    附錄D 內(nèi)核配置 1161
    附錄E 更多信息源 1162
    附錄F 部分習(xí)題解答 1167

載地址

下載錯(cuò)誤?【投訴報(bào)錯(cuò)】

氣書籍

載聲明

☉ 解壓密碼:www.dbjr.com.cn 就是本站主域名,希望大家看清楚,[ 分享碼的獲取方法 ]可以參考這篇文章
☉ 推薦使用 [ 迅雷 ] 下載,使用 [ WinRAR v5 ] 以上版本解壓本站軟件。
☉ 如果這個(gè)軟件總是不能下載的請(qǐng)?jiān)谠u(píng)論中留言,我們會(huì)盡快修復(fù),謝謝!
☉ 下載本站資源,如果服務(wù)器暫不能下載請(qǐng)過一段時(shí)間重試!或者多試試幾個(gè)下載地址
☉ 如果遇到什么問題,請(qǐng)?jiān)u論留言,我們定會(huì)解決問題,謝謝大家支持!
☉ 本站提供的一些商業(yè)軟件是供學(xué)習(xí)研究之用,如用于商業(yè)用途,請(qǐng)購買正版。
☉ 本站提供的Linux/UNIX系統(tǒng)編程手冊(cè) PDF掃描版[262MB]資源來源互聯(lián)網(wǎng),版權(quán)歸該下載資源的合法擁有者所有。