Linux環境高級程式設計

Linux環境高級程式設計

《Linux環境高級程式設計》是2019年3月清華大學出版社出版的圖書,作者是黃茹、王小銀、張麗麗。

基本介紹

  • 中文名:Linux環境高級程式設計
  • 作者:黃茹、王小銀、張麗麗
  • 出版時間:2019年3月
  • 出版社:清華大學出版社
  • ISBN:9787302520252
  • 定價:59 元
內容簡介,圖書目錄,

內容簡介

本書介紹使用C語言結合Linux API進行系統級程式設計的方法,主要包括Linux基礎知識、C程式開發工具、檔案及目錄管理、進程管理、重定向與管道、信號、進程間通信、執行緒、執行緒間的同步機制、網路程式設計等10章,以及10個實驗,全面而系統地介紹Linux作業系統各種機制的實現原理、經常使用的系統接口函式、系統接口和命令程式之間的關係以及命令程式的實現過程等。
本書結構清晰,適合於教學,為各類高等學校開設開源軟體程式設計課程提供了一個切實可行的思路,同時也可作為培訓教材在各類培訓機構使用。書中各章節劃分明確,各章突出不同的重點,有利於教師組織安排授課內容;同時提供設計精美、內容豐富的電子教案以及教學素材供授課教師使用,有效地減輕了授課教師備課的工作量和強度。
本書目標讀者為具有一定C語言基礎的讀者,適合各類高等院校的計算機及相關專業學生、Linux培訓機構、Linux API編程愛好者、Linux程式開發人員及愛好者學習使用。

圖書目錄

第1章Linux基礎知識/1
1.1Linux簡介1
1.1.1Linux系統的發展1
1.1.2與Linux相關的一些知識3
1.2Linux系統編程5
1.2.1什麼是系統編程5
1.2.2系統編程的學習內容及方法6
1.2.3一個例子7
1.2.4系統調用和庫函式10
1.3常用工具及命令10
1.3.1命令格式10
1.3.2常用工具11
1.3.3常用命令15
1.3.4獲取幫助17
1.4小結20
習題20
第2章C程式開發工具/22
2.1編輯工具22
2.1.1編輯工具介紹22
2.1.2vi和vim程式編輯器25
2.2gcc編譯器34
2.3gdb調試器36
2.3.1啟動和退出gdb37
2.3.2顯示和查找程式原始碼38
2.3.3執行程式和獲取幫助39
2.3.4設定和管理斷點40
2.3.5查看和設定變數的值45
2.3.6控制程式的執行46
2.4make和Makefile48〖1〗Linux環境高級程式設計[3]〖3〗2.4.1make命令48
2.4.2編寫Makefile檔案50
2.5小結54
習題55
第3章檔案及管理/56
3.1檔案和I/O操作分類56
3.1.1檔案概念56
3.1.2檔案操作分類56
3.2Linux檔案系統概述58
3.2.1檔案結構58
3.2.2檔案系統模型59
3.2.3、索引結點和檔案描述符60
3.2.4檔案的分類63
3.2.5檔案訪問許可權控制64
3.3檔案的讀寫68
3.3.1檔案打開、創建和關閉69
3.3.2檔案的讀寫72
3.3.3檔案讀寫指針的移動80
3.3.4標準I/O的檔案流82
3.4檔案屬性及相關係統調用87
3.4.1獲取檔案屬性87
3.4.2修改檔案的訪問許可權91
3.4.3修改檔案的用戶屬性93
3.4.4獲取用戶的信息94
3.4.5改變檔案大小95
3.4.6獲取檔案的時間屬性96
3.5操作97
3.5.1打開97
3.5.2讀取項98
3.5.3關閉98
3.6實現自己的ls命令100
3.7小結105
習題106
第4章進程管理/107
4.1Linux可執行程式的存儲結構與進程結構107
4.1.1Linux可執行程式的存儲結構107
4.1.2Linux系統的進程結構109
4.1.3進程樹110
4.2進程的環境和進程屬性111
4.2.1進程的環境111
4.2.2進程的狀態112
4.2.3進程的基本屬性115
4.2.4進程的用戶屬性121
4.3進程管理124
4.3.1創建進程124
4.3.2在進程中運行新代碼127
4.3.3vfork函式131
4.3.4進程退出133
4.3.5wait函式138
4.3.6Shell的實現流程142
4.4Linux中的特殊進程143
4.4.1孤兒進程143
4.4.2殭屍進程144
4.4.3守護進程145
4.4.4出錯記錄148
4.5小結150
習題150
第5章重定向與管道/151
5.1重定向和管道命令151
5.1.1重定向命令151
5.1.2管道命令152
5.2實現重定向153
5.2.1重定向的實施者153
5.2.2實現重定向的前提條件154
5.2.3dup和dup2154
5.2.4重定向的三種方法157
5.2.5ls l>list.txt159
5.3管道編程161
5.3.1匿名管道161
5.3.2命名管道165
5.3.3ls l|grep root168
5.3.4popen和pclose170
5.4小結173
習題174
第6章信號/175
6.1信號概述175
6.1.1什麼是信號175
6.1.2信號的來源和處理過程177
6.1.3信號的處理方式177
6.2早期信號處理函式——signal178
6.2.1signal函式實現信號的三種處理方式178
6.2.2signal函式存在的問題182
6.3信號處理函式——sigaction183
6.3.1sigaction系統調用183
6.3.2sigaction函式參數的說明186
6.4信號其他相關函式190
6.4.1kill與raise190
6.4.2alarm與pause192
6.4.3實現sleep函式193
6.5小結194
習題195
第7章進程間通信/196
7.1選擇進程間通信方式196
7.1.1檔案實現進程間通信196
7.1.2命名管道實現進程間通信199
7.2共享記憶體201
7.2.1什麼是共享記憶體201
7.2.2共享記憶體相關係統調用203
7.2.3共享記憶體實現進程間通信206
7.2.4三種通信方式的比較208
7.3信號量209
7.3.1信號量及相關係統調用209
7.3.2使用信號量控制對共享記憶體的訪問214
7.3.3信號量機制總結221
7.4System V IPC222
7.4.1Linux中的進程通信機制222
7.4.2System V IPC概述223
7.4.3IPC的標識符和鍵224
7.5訊息佇列225
7.5.1訊息佇列的概念225
7.5.2訊息佇列相關係統調用226
7.5.3使用訊息佇列實現進程間通信229
7.6小結232
習題232
第8章執行緒/233
8.1執行緒概述233
8.1.1執行緒的定義233
8.1.2用戶級執行緒和核心級執行緒234
8.1.3執行緒與進程的對比234
8.2執行緒基本操作235
8.2.1執行緒創建235
8.2.2執行緒退出/等待238
8.2.3執行緒終止244
8.2.4執行緒掛起247
8.2.5執行緒的分離249
8.2.6執行緒的一次性初始化251
8.2.7執行緒的私有數據253
8.3執行緒屬性257
8.3.1執行緒屬性對象258
8.3.2設定/獲取執行緒detachstate屬性260
8.3.3設定與獲取執行緒棧相關屬性261
8.4執行緒套用舉例266
8.5小結273
習題273
第9章執行緒間的同步機制/275
9.1互斥鎖275
9.1.1互斥鎖基本原理275
9.1.2互斥鎖基本操作275
9.1.3互斥鎖套用實例278
9.2條件變數279
9.2.1條件變數基本原理279
9.2.2條件變數基本操作279
9.2.3條件變數套用實例281
9.3讀寫鎖284
9.3.1讀寫鎖基本原理284
9.3.2讀寫鎖基本操作284
9.3.3讀寫鎖套用實例287
9.4執行緒與信號289
9.4.1執行緒信號管理290
9.4.2執行緒信號套用實例291
9.5小結295
習題295
第10章網路程式設計/296
10.1網路知識基礎296
10.1.1TCP/IP參考模型296
10.1.2Linux中TCP/IP網路的層結構296
10.1.3TCP協定297
10.1.4UDP協定298
10.2套接字299
10.2.1套接字概述299
10.2.2套接字編程接口300
10.2.3套接字通信流程303
10.3套接字基礎307
10.3.1套接字地址結構307
10.3.2位元組順序309
10.3.3位元組處理函式310
10.4套接字編程311
10.4.1基於TCP協定的網路通信311
10.4.2基於UDP協定的網路通信316
10.5小結319
習題319
附錄實驗/321
實驗1Linux基礎知識321
實驗2C程式開發工具321
實驗3檔案I/O操作322
實驗4進程管理及守護進程323
實驗5重定向和管道編程323
實驗6信號安裝及處理方式324
實驗7System V IPC進程通信325
實驗8執行緒管理325
實驗9執行緒間通信326
實驗10套接字編程326

相關詞條

熱門詞條

聯絡我們