亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

  • 書籍大?。?span>262.89MB
  • 書籍語言:簡體中文
  • 書籍類型:國產軟件
  • 書籍授權:免費軟件
  • 書籍類別:Linux_unix
  • 應用平臺:PDF
  • 更新時間:2015-05-21
  • 購買鏈接:
  • 網友評分:
360通過 騰訊通過 金山通過

情介紹

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

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

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

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

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

載地址

下載錯誤?【投訴報錯】

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

      氣書籍

      載聲明

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