TOP
0
0
三民出版.新書搶先報|最速、最優惠的新鮮貨報給你知!
Linux/UNIX系統編程手冊(全二冊)(簡體書)
滿額折

Linux/UNIX系統編程手冊(全二冊)(簡體書)

商品資訊

人民幣定價:158 元
定價
:NT$ 948 元
優惠價
87825
海外經銷商無庫存,到貨日平均30天至45天
下單可得紅利積點:24 點
商品簡介
作者簡介
名人/編輯推薦
目次
相關商品

商品簡介

《Linux/UNIX系統編程手冊(上、下冊)》是介紹Linux與UNIX編程接口的權 威之作。Linux編程資 深專業人士Michael Kerrisk在書中詳細描述了Linux/UNIX系統編程所涉及的系統調用和庫函數,並輔之以全而清晰的代碼示例。《Linux/UNIX系統編程手冊(上、下冊)》涵蓋了逾500個系統調用及庫函數,並給出逾200個程序示例,另含88張表格和115幅示意圖。
《Linux/UNIX系統編程手冊(上、下冊)》總共分為64章,主要講解了高效讀寫文件,對信號、時鐘和定時器的運用,創建進程、執行程序,編寫安全的應用程序,運用POSIX線程技術編寫多線程程序,創建和使用共享庫,運用管道、消息隊列、共享內存和信號量技術來進行進程間通信,以及運用套接字API編寫網絡應用等內容。
《Linux/UNIX系統編程手冊(上、下冊)》在彙聚大批 Linux專有特性(epoll、inotify、/proc)的同時,還特意強化了對UNIX標準(POSIX、SUS)的論述,達到了“魚與熊掌,二者得兼”的效果,這也堪稱本書的**大亮點。
《Linux/UNIX系統編程手冊(上、下冊)》佈局合理,論述清晰,說理透徹,尤其是作者對示例代碼的構思巧妙,獨具匠心,仔細研讀定會受益良多。本書適合從事Linux/UNIX系統開發、運維工作的技術人員閱讀,同時也可作為高校計算機專業學生的參考研習資料。

作者簡介

 全球頂尖的Linux內核黑客;
具有20多年的UNIX系統使用和編程經驗;
自2004年起,開始維護手冊頁項目(該項目旨在生成描述Linux內核以及glibc編程API的手冊頁);
撰寫或合著了250多篇手冊頁;
極參與對Linux內核/用戶空間接口的測試和設計評審工作。

名人/編輯推薦

 Linux/UNIX系統編程接口權威巨著,無出其右;
涵蓋500多個系統調用和庫函數;示例清晰完整,解釋巨細靡遺;
涵蓋當前UNIX標準(POSI X.1-2001/SUS v3和POSI X.1-2008/SUS v4);
眾多業內專家人士聯袂推薦;
Linux/UNIX開發人員的案頭必備,注定成為新的經典;

目次

《Linux/UNIX系統編程手冊(上冊)》:
第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公司和TheOpenGroup 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 實現標準 14
1.3.8 Linux、標準、Linux標準規范(LinuxStandardBase) 14
1.4 總結 15
第2章 基本概念 17
2.1 操作系統的核心—內核 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 靜態庫和共享庫 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文件系統 33
2.20 總結 33
第3章 系統編程概念 34
3.1 系統調用 34
3.2 庫函數 36
3.3 標準C語言函數庫;GNUC語言函數庫(glibc) 37
3.4 處理來自系統調用和庫函數的錯誤 38
3.5 關于本書示例程序的注意事項 40
3.5.1 命令行選項及參數 40
3.5.2 常用的函數及頭文件 40
3.6 可移植性問題 49
3.6.1 特性測試宏 49
3.6.2 系統數據類型 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參數 60
4.3.2 open()函數的錯誤 63
4.3.3 creat()系統調用 64
4.4 讀取文件內容:read() 64
4.5 數據寫入文件: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 打開文件的狀態標志 75
5.4 文件描述符和打開文件之間的關系 76
5.5 復制文件描述符 78
5.6 在文件特定偏移量處的I/O:pread()和pwrite() 80
5.7 分散輸入和集中輸出(Scatter—GatherI/O):readv()和writev() 81
5.8 截斷文件:truncate()和ftruncate()系統調用 84
5.9 非阻塞I/O 84
5.10 大文件I/O 85
5.11 /dev/fd 88
5.12 創建臨時文件 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 命令行參數(argc,argv) 99
6.7 環境列表 101
6.8 執行非局部跳轉:setjmp()和longjmp() 106
6.9 總結 111
6.9 練習 112
第7章 內存分配 113
7.1 在堆上分配內存 113
7.1.1 調整programbreak:brk()和sbrk() 113
7.1.2 在堆上分配內存:malloc()和free() 114
7.1.3 malloc()和free()的實現 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 文件系統用戶ID和組ID 139
9.6 輔助組ID 140
9.7 獲取和修改進程憑證 140
9.7.1 獲取和修改實際、有效和保存設置標識 140
9.7.2 獲取和修改文件系統ID 145
9.7.3 獲取和修改輔助組ID 145
9.7.4 修改進程憑證的系統調用總結 146
9.7.5 示例:顯示進程憑證 148
9.8 總結 149
9.9 習題 150
第10章 時間 151
10.1 日歷時間(CalendarTime) 151
10.2 時間轉換函數 153
10.2.1 將time_t轉換為可打印格式 153
10.2.2 time_t和分解時間之間的轉換 154
10.2.3 分解時間和打印格式之間的轉換 155
10.3 時區 161
10.4 地區(Locale) 163
10.5 更新系統時鐘 167
10.6 軟件時鐘(jiffies) 168
10.7 進程時間 168
10.8 總結 171
10.9 練習 172
第11章 系統限制和選項 173
11.1 系統限制 174
11.2 在運行時獲取系統限制(和選項) 176
11.3 運行時獲取與文件相關的限制(和選項) 178
11.4 不確定的限制 179
11.5 系統選項 180
11.6 總結 181
11.7 練習 182
第12章 系統和進程信息 183
12.1 /proc文件系統 183
12.1.1 獲取與進程有關的信息:/proc/PID 183
12.1.2 /proc下的系統信息 185
12.1.3 訪問/proc文件 186
12.2 系統標識:uname() 188
12.3 總結 190
12.4 練習 190
第13章 文件I/O緩沖 191
13.1 文件I/O的內核緩沖:緩沖區高速緩存 191
13.2 stdio庫的緩沖 194
13.3 控制文件I/O的內核緩沖 196
13.4 I/O緩沖小結 200
13.5 就I/O模式向內核提出建議 201
13.6 繞過緩沖區高速緩存:直接I/O 202
13.7 混合使用庫函數和系統調用進行文件I/O 204
13.8 總結 205
13.9 練習 205
第14章 系統編程概念 207
14.1 設備專用文件(設備文件) 207
14.2 磁盤和分區 208
14.3 文件系統 209
14.4 i節點 211
14.5 虛擬文件系統(VFS) 213
14.6 日志文件系統 214
14.7 單根層級和掛載點 215
14.8 文件系統的掛載和卸載 216
14.8.1 掛載文件系統:mount() 217
14.8.2 卸載文件系統:umount()和umount2() 222
14.9 高級掛載特性 223
14.9.1 在多個掛載點掛載文件系統 224
14.9.2 多次掛載同一掛載點 224
14.9.3 基于每次掛載的掛載標志 225
14.9.4 綁定掛載 225
14.9.5 遞歸綁定掛載 226
14.10 虛擬內存文件系統:tmpfs 227
14.11 獲得與文件系統有關的信息: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 進程的文件模式創建掩碼:umask() 249
15.4.7 更改文件權限:chmod()和fchmod() 251
15.5 I節點標志(ext2擴展文件屬性) 252
15.6 總結 256
15.7 練習 256
第16章 擴展屬性 258
16.1 概述 258
16.2 擴展屬性的實現細節 260
16.3 操控擴展屬性的系統調用 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與文件創建 271
17.7 ACL在實現方面的限制 272
17.8 ACLAPI 273
17.9 總結 280
17.10 練習 280
第18章 與鏈接 281
18.1 和(硬)鏈接 281
18.2 符號(軟)鏈接 283
18.3 創建和移除(硬)鏈接:link()和unlink() 286
18.4 更改文件名:rename() 289
18.5 使用符號鏈接:symlink()和readlink() 290
18.6 創建和移除: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章 監控文件事件 311
19.1 概述 311
19.2 inotifyAPI 312
19.3 inotify事件 313
19.4 讀取inotify事件 315
19.5 隊列限制和/proc文件 319
19.6 監控文件的舊有系統: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 發送信號:kill() 333
20.6 檢查進程的存在 334
20.7 發送信號的其他方式:raise()和killpg() 335
20.8 顯示信號描述 336
20.9 信號集 337
20.10 信號掩碼(阻塞信號傳遞) 339
20.11 處于等待狀態的信號 341
20.12 不對信號進行排隊處理 341
20.13 改變信號處置:sigaction() 345
20.14 等待信號:pause() 346
20.15 總結 347
20.16 練習 347
第21章 信號:信號處理器函數 348
21.1 設計信號處理器函數 348
21.1.1 再論信號的非隊列化處理 348
21.1.2 可重入函數和異步信號安全函數 349
21.1.3 全局變量和sig_atomic_t數據類型 353
21.2 終止信號處理器函數的其他方法 354
21.2.1 在信號處理器函數中執行非本地跳轉 354
21.2.2 異常終止進程:abort() 358
21.3 在備選棧中處理信號:sigaltstack() 358
21.4 SA_SIGINFO標志 361
21.5 系統調用的中斷和重啟 366
21.6 總結 368
21.7 練習 369
第22章 信號:高級特性 370
22.1 核心轉儲文件 370
22.2 傳遞、處置及處理的特殊情況 372
22.3 可中斷和不可中斷的進程睡眠狀態 373
22.4 硬件產生的信號 374
22.5 信號的同步生成和異步生成 374
22.6 信號傳遞的時機與順序 375
22.7 signal()的實現及可移植性 376
22.8 實時信號 378
22.8.1 發送實時信號 379
22.8.2 處理實時信號 380
22.9 使用掩碼來等待信號:sigsuspend() 384
22.10 以同步方式等待信號 387
22.11 通過文件描述符來獲取信號 390
22.12 利用信號進行進程間通信 393
22.13 早期的信號API(SystemV和BSD) 393
22.14 總結 395
22.15 練習 396
……
第23章 定時器與休眠 397
第24章 進程的創建 425
第25章 進程的終止 440
第26章 監控子進程 447
第27章 程序的執行 465
第28章 詳述進程創建和程序執行 487
第29章 線程:介紹 509
第30章 線程:線程同步 521
第31章 線程:線程安全和每線程存儲 539
第32章 線程:線程取消 552
第33章 線程:更多細節 561
……
《Linux/UNIX系統編程手冊(下冊)》 

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 825
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區