Linux C編程

Linux C編程

《Linux C編程》是2005-12-30齣版的一本圖書。

圖書簡介

本書系統地介紹了在Linux平台下用C語言進行程式開發的過程,通過列舉大量的程式實例,使讀者很快掌握在Linux平台下進行C程式開發的方法和技巧,並具備開發大型應用程式的能力。

本書系統地介紹了在Linux平台下用C語言進行程式開發的過程,通過列舉大量的程式實例,使讀者很快掌握在Linux平台下進行C程式開發的方法和技巧,並具備開發大型應用程式的能力。

本書內容翔實,主要包括:Linux平台下C語言及其編程環境的介紹,C語言編譯器、調試工具和自動維護工具的使用方法,Linux系統提供的特有函式調用,在C程式中訪問檔案的方法言網路編程方法以及curses編程等。

《linux c從入門到精通編程》從初學者的角度出發,通過通俗易懂的語言,豐富多彩的實例,詳細介紹丁在linux系統下使用c語言進行應用程式開發應該掌握的各方面技術。全書共分20章,包括linux系統概述、c語言基礎、記憶體管理、基本編輯器vim和emacs、gcc編譯器、gdb調試工具、進程控制、進程間通信、檔案操作、檔案的輸入/輸出操作、信號及信號處理、網路編程、make編譯基礎、linux系統下的c語言與資料庫、集成開發環境、界面開發基礎、界面布局、界面構件開發、glade設計程式界面、mp3音樂播放器。所有知識都結合具體實例進行介紹,涉及的程式代碼給出了詳細的注釋,可以使讀者輕鬆領會linux系統下的c語言應用程式開發的精髓,快速提高開發技能。

本書結構合理、概念清晰、實例豐富,並具有很強的啟發性和實用性,適合於有一定的C語言基礎,需要在Linux系統上編程的程式設計人員閱讀。

作者推薦

另外,本書除了紙質內容之外,配書光碟中還給出了海 量開發資源庫,主要內容如下:
語音視頻講解:總時長4小時,共30段 實例資源庫 881個經典範例
模組資源庫:15個常用模組項目 案例資源庫:15個實用項目
測試題庫系統:616道能力測試題目 面試資源庫:371道企業面試真題
ppt電子教案
《linux c從入門到精通編程》適合作為軟體開發入門者的自學用書,也適合作為高等院校相關專業的教學參考書,也可供開發人員查閱、參考。

書籍目錄

目錄

第1章Linux下C語言編程簡介 1

1.1Linux簡介 1

1.2C語言的簡介和特點 4

1.3Linux程式設計基礎知識 5

1.3.1程式安裝目錄 5

1.3.2頭檔案 5

1.3.3庫檔案 6

1.4Linux下C語言編程環境

概述 7

1.5Linux程式設計的特點 9

1.6Linux下C語言編碼的風格 10

1.6.1GNU編程風格 10

1.6.2Linux核心編程風格 11

第2章vi與emacs編輯器 12

2.1vim概述及套用 12

2.2emacs簡介及套用 17

2.3Linux下的其他編輯器 21

2.3.1最簡單的文本編輯器ed 21

2.3.1最容易上手的編輯器

pico 23

第3章gcc編譯器 27

3.1gcc簡介 27

3.2使用gcc 28

3.3gcc警告提示功能 30

3.4庫依賴 32

3.5gcc代碼最佳化 33

3.6加速 34

3.7gcc常用選項 35

3.8gcc的錯誤類型及對策 36

第4章gdb調試器 38

4.1gdb概述 38

4.2使用gdb 41

4.2.1gdb的命令概貌 42

4.2.2gdb中運行Linux的

shell程式 44

4.2.3在gdb中運行程式 44

4.2.4調試已運行的程式 45

4.2.5暫停/恢復程式運行 45

4.2.6查看棧信息 52

4.2.7查看源程式 54

4.2.8查看運行時數據 56

4.2.9改變程式的執行 64

第5章使用make 68

5.1makefile實例檔案分析 68

5.1.1make與makefile檔案

的關係 69

5.1.2在makefile檔案中使用

變數 71

5.1.3讓make自動推導依賴

關係 72

5.1.4另類風格的makefile

檔案 73

5.1.5清空目標檔案的規則 73

5.2makefile檔案概述 74

5.3make書寫規則 76

5.3.1規則舉例 76

5.3.2在規則中使用通配符 77

5.3.3檔案搜尋 78

5.3.4偽目標 79

5.3.5多目標 80

5.3.6靜態模式 81

5.3.7自動生成依賴性 82

5.4使用命令 84

5.4.1顯示命令 84

5.4.2執行命令 84

5.4.3命令出錯 85

5.4.4嵌套執行make 85

5.4.5定義命令包 87

5.5使用變數 88

5.5.1變數的基礎 88

5.5.2賦值變數 89

5.5.3變數的高級用法 91

5.5.4追加變數值 93

5.5.5override指示符 94

5.5.6多行變數 94

5.5.7環境變數 95

5.5.8目標變數 95

5.5.9模式變數 96

5.6使用條件判斷 96

5.6.1示例 97

5.6.2語法 98

5.7使用函式 100

5.7.1函式的調用語法 100

5.7.2字元串處理函式 100

5.7.3檔案名稱操作函式 104

5.7.4foreach函式 105

5.7.5if函式 106

5.7.6call函式 106

5.7.7origin函式 107

5.7.8shell函式 108

5.7.9控制make的函式 108

5.8make的運行 109

5.8.1make的退出碼 109

5.8.2指定makefile檔案 110

5.8.3指定目標 110

5.8.4檢查規則 111

5.8.5make的參數 112

5.9隱含規則 115

5.9.1使用隱含規則 116

5.9.2隱含規則一覽 117

5.9.3隱含規則使用的變數 119

5.9.4隱含規則鏈 121

5.9.5定義模式規則 121

5.9.6隱含規則搜尋算法 125

5.10使用make更新函式館

檔案 126

5.10.1函式館檔案的成員 126

5.10.2函式館成員的隱含規則 127

5.10.3函式館檔案的後綴規則 127

5.10.4注意事項 128

第6章檔案的操作 129

6.1Linux的檔案結構 129

6.1.1目錄結構 129

6.1.2檔案和設備 130

6.2系統調用和設備驅動程式 132

6.3庫函式 132

6.4硬體設備檔案的底層訪問 133

6.4.1write系統調用 134

6.4.2read系統調用 135

6.4.3open系統調用 136

6.4.4creat系統調用 137

6.4.5訪問許可權的初始化值 137

6.4.6umask變數 138

6.4.7close系統調用 139

6.4.8ioctl系統調用 140

6.4.9lseek系統調用 142

6.4.10fstat、stat和lstat系統

調用 144

6.4.11dup和dup2系統調用 145

6.5檔案和目錄的維護 146

6.5.1chmod系統調用 146

6.5.2chown系統調用 147

6.5.3unlink、link、symlink

系統調用 147

6.5.4mkdir和rmdir系統調用 148

6.5.5chdir系統調用和getcwd

函式 148

第7章標準I/O庫 149

7.1流和FILE對象 149

7.2標準輸入、標準輸出和標

準出錯 149

7.3快取 150

7.3.1全快取 150

7.3.2行快取 150

7.3.3不帶快取 150

7.4打開流 152

7.5讀和寫流 154

7.5.1輸入函式 154

7.5.2輸出函式 156

7.6每次一行I/O 156

7.7標準I/O的效率 157

7.8二進制I/O 158

7.9定位流 160

7.10格式化I/O 161

7.10.1格式化輸出 161

7.10.2格式化輸入 161

7.11實現細節 162

7.12臨時檔案 162

第8章進程控制 163

8.1進程概述 163

8.1.1進程的狀態及其狀態

轉換 163

8.1.2Linux進程簡介 165

8.1.3進程控制 166

8.1.4進程調度的概念 168

8.2進程的一般操作 169

8.2.1獲得進程id 169

8.2.2fork創建進程 170

8.2.3exec系統調用 172

8.2.4exit和_exit 177

8.2.5wait系統調用 179

8.2.6sleep函式調用 187

8.3進程的特殊操作 187

8.3.1setuid和setgid系統

調用 188

8.3.2setpgrp和setpgid系統

調用 189

8.3.3chdir系統調用 190

8.3.4chroot系統調用 190

8.3.5nice系統調用 191

第9章進程間的通信 192

9.1Linux下進程通信概述 192

9.2管道及有名管道 193

9.2.1管道概述及相關API

套用 194

9.2.2有名管道概述及相關API

套用 201

9.3信號及其處理 207

9.3.1信號及信號來源 207

9.3.2信號的種類 207

9.3.3進程對信號的回響 209

9.3.4信號的傳送 209

9.3.5信號的安裝(設定信號關

聯動作) 212

9.3.6信號集及信號集操作

函式 215

9.3.7信號阻塞與信號未決 216

9.3.8信號生命周期 216

9.3.9信號編程注意事項 218

9.3.10信號套用實例 220

9.4訊息佇列 224

9.4.1訊息佇列基本概念 225

9.4.2操作訊息佇列 225

9.4.3獲得或設定訊息佇列

屬性 226

9.4.4訊息佇列的限制 229

9.4.5訊息佇列套用實例 230

9.5信號燈概述 232

9.5.1操作信號燈 233

9.5.2信號燈的限制 235

9.5.3競爭問題 236

9.5.4信號燈套用實例 236

9.6共享記憶體 239

9.6.1核心怎樣保證各個進程

定址到同一個共享記憶體

區域的記憶體頁面 240

9.6.2mmap()及其相關係統

調用 241

9.6.3mmap()範例 242

9.6.4對mmap()返回地址的

訪問 246

9.6.5系統V共享記憶體原理 249

9.6.6系統V共享記憶體API 250

9.6.7系統V共享記憶體限制 250

9.6.8系統V共享記憶體範例 250

9.7套接口(Sockets)通信 253

第10章執行緒簡介 254

10.1執行緒概述 254

10.2創建執行緒 255

10.2.1執行緒創建屬性 255

10.2.2執行緒創建的Linux

實現 256

10.3執行緒取消 256

10.3.1執行緒取消的語義 256

10.3.2取消點 257

10.3.3程式設計方面的

考慮 257

10.3.4與執行緒取消相關的

pthread函式 257

10.4私有數據 258

10.4.1創建和註銷 258

10.4.2訪問 259

10.4.3使用範例 259

10.5互斥鎖 261

10.5.1創建和銷毀 261

10.5.2互斥鎖屬性 261

10.5.3鎖操作 262

10.5.4其他 262

10.6條件變數 263

10.6.1創建和註銷 263

10.6.2等待和激發 263

10.6.3其他 264

10.7異步信號 266

10.8執行緒終止 267

10.8.1執行緒終止方式 267

10.8.2執行緒終止時的清理 267

10.8.3執行緒終止的同步及其

返回值 268

10.8.4關於pthread_exit()和

return 269

10.9雜項 269

10.9.1獲得本執行緒ID 270

10.9.2判斷兩個執行緒是否為

同一執行緒 270

10.9.3僅執行一次的操作 270

10.9.4pthread_kill_other_

threads_np() 271

第11章curses編程簡介 273

11.1curses基本結構 273

11.2顏色和屬性 276

11.3視窗和基墊 279

11.4游標和螢幕輸出 285

11.5鍵盤輸入 288

11.5.1cbreak() 288

11.5.2延遲模式 288

11.5.3回顯模式和輸出

延遲 289

11.5.4功能鍵轉換 289

11.6選單 292

11.7表單 296

11.8用curses函式編寫一個

漢諾塔遊戲 301

11.8.1漢諾塔遊戲 301

11.8.2定義數據結構 302

11.8.3柱的實現 302

11.8.4盤的實現 302

11.8.5接收輸入的實現 303

11.8.6移動盤的實現 303

第12章網路編程 311

12.1TCP/IP簡介 311

12.1.1IP及相關協定 312

12.1.2傳輸控制協定TCP 317

12.1.3用戶數據報協定

UDP 319

12.2Socket編程簡介 319

12.2.1Socket編程相關數據

類型定義 320

12.2.2打開Socket描述符、

建立綁定並建立連線 320

12.2.3Listen()--監聽是

否有服務請求 321

12.2.4accept()--連線端

口的服務請求 322

12.2.5send()和recv()--

數據傳輸 322

12.2.6sendto()和recvfrom()

--利用數據報方式

進行數據傳輸 323

12.2.7close()和shutdown()

--結束數據傳輸 323

12.2.8DNS--域名服務

相關函式 324

12.3面向連線的客戶機/伺服器

代碼實例 324

12.4ping命令的簡單實現 328

12.4.1ping命令簡介 329

12.4.2ICMP協定簡介 329

12.4.3IP報頭格式 330

12.4.4ICMP報頭格式 331

12.4.5ICMP數據報 333

12.4.6數據統計 333

12.4.7完整的ping命令

代碼 334

第13章實例一:Linux下CD

播放器 339

13.1音頻CD 339

13.2設備控制 340

13.3音軌處理 342

13.3.1計算音軌數目 342

13.3.2定位音軌位置 344

13.3.3獲取音軌信息 345

13.4CD播放 347

13.4.1播放(play) 347

12.4.2停止(stop) 349

13.4.3暫停(pause) 350

12.4.4繼續(resume) 351

13.5音量調節 352

13.6子碼信息 354

第14章實例二:一個簡單的

伺服器端/客戶端程式 357

附錄 361

參考文獻 371

相關詞條

相關搜尋

熱門詞條

聯絡我們