注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)操作系統(tǒng)LinuxLinux編程從入門到精通

Linux編程從入門到精通

Linux編程從入門到精通

定 價:¥49.80

作 者: 宮虎波 等編著
出版社: 化學(xué)工業(yè)出版社
叢編項: 程序員書庫
標 簽: LINUX

ISBN: 9787122056887 出版時間: 2009-08-01 包裝: 平裝
開本: 16開 頁數(shù): 391 字數(shù):  

內(nèi)容簡介

  隨著Linux平臺的廣泛使用,與之相關(guān)專業(yè)的應(yīng)用開發(fā)正變得越來越重要。本書由淺入深,系統(tǒng)地介紹了在Linux平臺下使用C語言進行程序開發(fā)的技術(shù),通過豐富的編程實例,使讀者可以快速掌握Linux平臺下應(yīng)用C語言進行開發(fā)的技能。本書共分為4篇21章,詳細講解了如何在Linux環(huán)境下進行C語言的開發(fā)。第一篇介紹了Linux的系統(tǒng)環(huán)境,主要包括Linux系統(tǒng)簡介和shell環(huán)境等內(nèi)容;第二篇介紹了C語言及編程環(huán)境,主要包括C語言簡介,vi編輯器、gcc編譯器、make的使用,程序調(diào)試和創(chuàng)建與使用庫等內(nèi)容;第三篇介紹了輸入輸出及進程管理,主要包括文件操作,標準輸入輸出庫,界面程序設(shè)計——QT、GTK+、進程、信號等內(nèi)容;第四篇介紹了進程間通信及網(wǎng)絡(luò)編程,主要包括進程間通信——管道、消息隊列、共享內(nèi)存、信號量,Linux網(wǎng)絡(luò)環(huán)境,基本套接口編程和綜合實例——銀行代理收費服務(wù)器等內(nèi)容。本書適合沒有編程基礎(chǔ)的C語言初學(xué)者作為入門教程,也可作為大、中專院校師生和培訓(xùn)班的教材。對于Linux下C語言開發(fā)的愛好者,本書也有較大的參考價值。

作者簡介

  本叢書的作者團隊對計算機程序設(shè)計類圖書市場有很好的敏感性,對出版動態(tài)有準確的把握,對計算機技術(shù)的發(fā)展進行長期跟蹤。該團隊長期以來致力于計算機圖書的內(nèi)容提供和策劃,已經(jīng)出版的多個系列圖書都在計算機圖書市場上有良好的口碑,都曾經(jīng)引領(lǐng)了當(dāng)年的計算機程序設(shè)計暢銷書。

圖書目錄

第一篇 系統(tǒng)環(huán)境
第1章 Linux系統(tǒng)概述 2
1.1 計算機操作系統(tǒng)簡介 2
1.1.1 操作系統(tǒng)的概念 2
1.1.2 操作系統(tǒng)的基本功能 3
1.1.3 主要操作系統(tǒng)介紹 3
1.2 Linux操作系統(tǒng)介紹 4
1.2.1 Linux的來源 4
1.2.2 什么是Linux 5
1.2.3 Linux的特性及優(yōu)點 7
1.2.4 為什么要選擇Linux 8
1.2.5 內(nèi)核的組成 8
1.3 主流Linux操作系統(tǒng)及發(fā)行版本 10
1.3.1 Linux內(nèi)核的版本 10
1.3.2 Linux的發(fā)行版本 10
1.4 小結(jié) 11
第2章 shell環(huán)境 12
2.1 shell介紹 12
2.1.1 shell的種類 12
2.1.2 如何進入shell 13
2.1.3 如何使用shell 14
2.2 shell編程基礎(chǔ) 15
2.2.1 創(chuàng)建和運行shell腳本程序 15
2.2.2 shell環(huán)境變量 16
2.2.3 常用的shell命令 18
2.2.4 管道與重定向的使用 19
2.2.5 shell變量的使用 21
2.2.6 shell運算符的應(yīng)用 22
2.2.7 在shell腳本中進行條件控制 23
2.2.8 在shell腳本中使用for循環(huán) 25
2.2.9 在shell腳本中使用while循環(huán) 26
2.2.10 在shell腳本中使用until循環(huán) 27
2.2.11 在shell腳本中使用函數(shù) 27
2.3 綜合實例 28
2.3.1 實例需求 28
2.3.2 系統(tǒng)設(shè)計 28
2.3.3 程序代碼 28
2.4 小結(jié) 33
第二篇 C語言及編程環(huán)境
第3章 C語言簡介 36
3.1 C語言概述 36
3.1.1 C語言的發(fā)展簡史 36
3.1.2 C語言的特點 37
3.2 C語言的組成元素 37
3.2.1 字符集 37
3.2.2 標識符 38
3.2.3 關(guān)鍵字 38
3.2.4 常量的類型 38
3.2.5 變量的類型 39
3.2.6 變量的存儲類型 40
3.2.7 變量的作用域 42
3.2.8 運算符 42
3.2.9 注釋方法 43
3.3 語句與控制結(jié)構(gòu) 43
3.3.1 表達式語句的組成 43
3.3.2 復(fù)合語句 44
3.3.3 函數(shù)調(diào)用語句 44
3.3.4 控制語句 44
3.3.5 循環(huán)控制語句 47
3.3.6 轉(zhuǎn)移語句 48
3.4 函數(shù)與程序結(jié)構(gòu) 48
3.4.1 庫函數(shù) 48
3.4.2 用戶自定義函數(shù) 49
3.5 數(shù)組 49
3.5.1 一維數(shù)組的定義和使用 49
3.5.2 多維數(shù)組的定義和使用 50
3.6 結(jié)構(gòu) 52
3.6.1 結(jié)構(gòu)的定義 52
3.6.2 結(jié)構(gòu)成員的引用 53
3.7 指針 53
3.7.1 指針的概念 54
3.7.2 指針的定義和使用 54
3.7.3 指針變量的運算 55
3.8 綜合實例 56
3.8.1 冒泡排序算法原理 56
3.8.2 冒泡排序算法實現(xiàn) 56
3.9 小結(jié) 58
第4章 vi編輯器 59
4.1 vi編輯器概述 59
4.1.1 vi的啟動 59
4.1.2 vi的操作方式 59
4.1.3 vi編輯器的功能鍵 60
4.1.4 退出vi編輯器 61
4.2 vi編輯器的命令 62
4.2.1 光標移動命令 62
4.2.2 滾動屏幕命令 62
4.2.3 文本編輯命令 63
4.2.4 文本刪除命令 63
4.2.5 文本修改命令 64
4.2.6 文本移動命令 64
4.2.7 搜索命令 65
4.2.8 ex轉(zhuǎn)義命令 65
4.3 vi編輯器的選項 66
4.3.1 選項的含義 66
4.3.2 選項的設(shè)置方式 67
4.4 小結(jié) 68
第5章 gcc編譯器 69
5.1 編譯過程簡述 69
5.1.1 預(yù)編譯過程 69
5.1.2 編譯的過程 71
5.1.3 優(yōu)化及匯編的過程 71
5.2 鏈接過程簡述 72
5.2.1 鏈接的過程 72
5.2.2 靜態(tài)鏈接與動態(tài)鏈接 73
5.3 gcc編譯器簡述 73
5.3.1 程序的編譯與鏈接 74
5.3.2 gcc編譯器的工作過程 74
5.4 gcc編譯器語法 75
5.4.1 常用語法 75
5.4.2 用gcc編譯器生成可執(zhí)行文件 76
5.4.3 用gcc編譯器生成動態(tài)鏈接庫 76
5.4.4 如何使用動態(tài)鏈接 77
5.4.5 gcc編譯器常見錯誤排除 78
5.5 小結(jié) 78
第6章 make的使用 79
6.1 makefile介紹 79
6.2 makefile的書寫規(guī)則 80
6.2.1 基本語法規(guī)則 80
6.2.2 定義變量 80
6.2.3 環(huán)境變量 81
6.2.4 通配符的使用 81
6.2.5 使用條件判斷 82
6.2.6 在makefile中使用函數(shù) 82
6.2.7 使用make與直接使用gcc腳本的區(qū)別 84
6.3 make工具 84
6.3.1 運行make命令 84
6.3.2 make命令的工作過程 85
6.3.3 在makefile中使用偽目標 85
6.3.4 make命令的返回值 86
6.4 綜合實例 86
6.4.1 makefile應(yīng)用的環(huán)境 86
6.4.2 makefile的實現(xiàn)及解釋 86
6.5 小結(jié) 87
第7章 程序調(diào)試 88
7.1 錯誤處理 88
7.1.1 使用標準錯誤輸出 88
7.1.2 使用errno全局變量 89
7.1.3 使用錯誤信號處理 90
7.1.4 使用assert斷言 91
7.1.5 內(nèi)存泄露的檢查 92
7.1.6 其他可能的內(nèi)存錯誤 93
7.2 gdb介紹 94
7.2.1 利用gdb調(diào)試的前提 94
7.2.2 啟動gdb的方法 94
7.2.3 gdb的基本功能 95
7.3 使用gdb進行調(diào)試實例 97
7.4 小結(jié) 98
第8章 創(chuàng)建與使用庫 99
8.1 函數(shù)庫介紹 99
8.1.1 系統(tǒng)函數(shù)庫的使用 99
8.1.2 用戶自定義函數(shù)庫的創(chuàng)建和使用 100
8.2 庫函數(shù)與系統(tǒng)調(diào)用 102
8.2.1 系統(tǒng)調(diào)用介紹 103
8.2.2 庫函數(shù)介紹 104
8.3 動態(tài)庫的創(chuàng)建與使用 105
8.4 綜合實例 108
8.5 小結(jié) 109
第三篇 輸入輸出及進程管理
第9章 文件操作 112
9.1 Linux文件系統(tǒng)簡述 112
9.1.1 邏輯磁盤分區(qū)管理 112
9.1.2 文件系統(tǒng)的建立與掛載 114
9.1.3 虛擬文件系統(tǒng) 117
9.1.4 ext2文件系統(tǒng) 117
9.1.5 文件類型 119
9.1.6 文件權(quán)限管理 120
9.2 文件基本操作 125
9.2.1 文件編程的基本概念 125
9.2.2 文件的創(chuàng)建與打開 126
9.2.3 文件的讀寫 130
9.2.4 文件的關(guān)閉與刪除 133
9.2.5 文件的隨機存取 135
9.3 文件安全編程 137
9.3.1 文件的屬主及用戶組編程 137
9.3.2 設(shè)置文件權(quán)限(UGO模式) 139
9.3.3 設(shè)置文件權(quán)限(ACL模式) 141
9.4 文件屬性編程 145
9.5 目錄編程 148
9.6 綜合實例 152
9.6.1 ELF文件格式 152
9.6.2 程序?qū)崿F(xiàn) 152
9.7 小結(jié) 156
第10章 標準輸入輸出庫 157
10.1 標準I/O的基本概念 157
10.1.1 流 157
10.1.2 緩存 158
10.1.3 標準輸入、標準輸出及標準錯誤輸出 160
10.2 使用標準I/O進行文件操作 162
10.2.1 打開關(guān)閉流文件 162
10.2.2 單字符方式讀寫 162
10.2.3 行方式讀寫 164
10.2.4 二進制方式讀寫 166
10.2.5 格式化輸入/輸出 168
10.2.6 在流文件中定位 170
10.3 綜合實例 171
10.4 小結(jié) 174
第11章 界面程序設(shè)計——Qt 175
11.1 Qt簡述 175
11.1.1 Qt的組成 175
11.1.2 Qt的優(yōu)點 175
11.2 Qt開發(fā)包的安裝 176
11.3 Qt集成開發(fā)環(huán)境介紹 177
11.3.1 啟動設(shè)計器 177
11.3.2 設(shè)計器界面元素介紹 178
11.4 Qt程序開發(fā) 179
11.4.1 建立新項目 179
11.4.2 設(shè)計窗口 179
11.4.3 添加事件處理程序 181
11.4.4 添加主程序 182
11.5 Qt程序的生成 183
11.6 小結(jié) 184
第12章 界面程序設(shè)計——GTK+ 185
12.1 GNOME與KDE 185
12.1.1 Linux圖形界面原理 185
12.1.2 X協(xié)議 185
12.1.3 GNOME與KDE 的啟動 186
12.1.4 GNOME與KDE的區(qū)別 187
12.2 使用GTK+進行開發(fā) 187
12.2.1 GTK+的安裝 187
12.2.2 GTK+程序的初始化與退出 187
12.2.3 GTK+的事件處理 188
12.2.4 使用GTK+實現(xiàn)HelloWorld 189
12.2.5 編譯GTK+程序 191
12.2.6 在GTK+中使用控件 191
12.3 綜合實例 192
12.3.1 實例需求 192
12.3.2 實例代碼及解釋 192
12.4 小結(jié) 194
第13章 進程 195
13.1 進程的基本概念 195
13.1.1 進程的屬性 195
13.1.2 進程的內(nèi)存映像 197
13.1.3 進程組 198
13.1.4 進程的會話 199
13.1.5 進程的控制終端 201
13.1.6 進程的狀態(tài) 202
13.1.7 進程的優(yōu)先級 204
13.2 進程的運行環(huán)境 206
13.2.1 進程的入口函數(shù) 206
13.2.2 進程的環(huán)境變量 211
13.2.3 進程的內(nèi)存分配 213
13.3 進程的創(chuàng)建 214
13.3.1 調(diào)用fork創(chuàng)建進程 214
13.3.2 調(diào)用exec系列函數(shù)執(zhí)行程序 216
13.3.3 調(diào)用system創(chuàng)建進程 219
13.4 進程的終止 220
13.4.1 調(diào)用exit退出進程 220
13.4.2 調(diào)用wait等待進程退出 220
13.5 小結(jié) 222
第14章 信號 223
14.1 信號的基本概念 223
14.1.1 信號的定義 223
14.1.2 信號的來源 224
14.1.3 信號的分類 224
14.2 信號的安裝及處理 226
14.2.1 信號的處理方式 226
14.2.2 用signal安裝信號 226
14.2.3 用sigaction安裝信號 228
14.2.4 信號的阻塞處理 230
14.2.5 信號集的操作 232
14.2.6 未決信號的處理 233
14.2.7 等待信號 234
14.2.8 信號處理函數(shù)的實現(xiàn) 236
14.3 信號的發(fā)送 238
14.3.1 使用kill發(fā)送信號 238
14.3.2 使用sigqueue發(fā)送信號 239
14.4 SIGALRM信號 240
14.4.1 安裝SIGALRM信號 240
14.4.2 設(shè)置定時器 241
14.5 SIGCLD信號 242
14.5.1 子進程的退出過程 242
14.5.2 SIGCLD信號的處理 243
14.6 小結(jié) 244
第四篇 進程間通信(IPC)及網(wǎng)絡(luò)編程
第15章 進程間通信——管道 246
15.1 進程間通信概念 246
15.2 管道的概念及分類 247
15.2.1 管道的概念及特點 247
15.2.2 管道的分類 248
15.3 管道編程 249
15.3.1 創(chuàng)建管道 249
15.3.2 讀寫管道 251
15.3.3 關(guān)閉管道 253
15.3.4 管道I/O 253
15.4 命名管道編程 255
15.4.1 創(chuàng)建管道 255
15.4.2 打開管道及讀寫 257
15.4.3 管道的刪除 259
15.5 小結(jié) 259
第16章 進程間通信——消息隊列 260
16.1 System V進程間通信概述 260
16.1.1 Shell環(huán)境控制IPC 260
16.1.2 進程間通信關(guān)鍵字 262
16.1.3 進程間通信標識符 262
16.1.4 IPC權(quán)限許可結(jié)構(gòu) 263
16.2 消息隊列基本概念 264
16.2.1 隊列 264
16.2.2 消息 264
16.2.3 消息隊列 265
16.3 消息隊列編程 266
16.3.1 鍵值生成函數(shù) 266
16.3.2 創(chuàng)建消息隊列 267
16.3.3 消息發(fā)送 270
16.3.4 消息接收 272
16.3.5 控制消息隊列 274
16.4 小結(jié) 276
第17章 進程間通信——共享內(nèi)存 277
17.1 共享內(nèi)存基本概念 277
17.1.1 共享內(nèi)存編程模型 277
17.1.2 共享內(nèi)存的映射 277
17.1.3 共享內(nèi)存數(shù)據(jù)結(jié)構(gòu) 278
17.2 共享內(nèi)存編程 279
17.2.1 創(chuàng)建共享內(nèi)存 279
17.2.2 映射共享內(nèi)存 281
17.2.3 刪除共享內(nèi)存映射 282
17.2.4 控制共享內(nèi)存 283
17.3 小結(jié) 285
第18章 進程間通信——信號量 286
18.1 PV操作原理 286
18.1.1 PV操作的來源 286
18.1.2 PV操作的定義 287
18.1.3 PV操作的應(yīng)用 288
18.2 信號量基本概念 290
18.2.1 Linux信號量簡介 290
18.2.2 信號量的控制結(jié)構(gòu) 291
18.3 信號量編程 291
18.3.1 創(chuàng)建信號量 291
18.3.2 信號量操作 293
18.3.3 信號量控制 296
18.4 綜合實例——利用信號量實現(xiàn)生產(chǎn)者-消費者模型 299
18.4.1 需求 300
18.4.2 需求分析與設(shè)計 300
18.4.3 實現(xiàn)代碼及分析 300
18.5 小結(jié) 303
第19章 Linux網(wǎng)絡(luò)環(huán)境 304
19.1 計算機網(wǎng)絡(luò)基礎(chǔ) 304
19.1.1 計算機網(wǎng)絡(luò)分類 304
19.1.2 網(wǎng)絡(luò)拓撲結(jié)構(gòu) 305
19.1.3 網(wǎng)絡(luò)通信協(xié)議 306
19.1.4 OSI參考模型 307
19.2 TCP/IP協(xié)議概述 309
19.2.1 TCP/IP分層模型 309
19.2.2 TCP/IP協(xié)議族 310
19.2.3 網(wǎng)絡(luò)地址 311
19.2.4 端口 313
19.3 客戶機/服務(wù)器模型 314
19.4 傳輸控制協(xié)議 316
19.4.1 連接建立 316
19.4.2 連接關(guān)閉 316
19.4.3 TCP數(shù)據(jù)報格式 318
19.5 用戶數(shù)據(jù)報協(xié)議 319
19.6 小結(jié) 319
第20章 基本套接口編程 320
20.1 套接口編程簡述 320
20.1.1 半相關(guān)與全相關(guān) 321
20.1.2 地址族與協(xié)議族 321
20.1.3 面向連接與面向無連接 322
20.1.4 套接口類型 322
20.1.5 字節(jié)序 323
20.1.6 套接口連接方式 324
20.1.7 數(shù)據(jù)傳輸方式 325
20.2 套接口數(shù)據(jù)結(jié)構(gòu) 326
20.2.1 套接口地址結(jié)構(gòu) 326
20.2.2 通用套接口地址結(jié)構(gòu) 327
20.2.3 主機名稱數(shù)據(jù)結(jié)構(gòu) 327
20.2.4 服務(wù)名稱數(shù)據(jù)結(jié)構(gòu) 329
20.2.5 通用數(shù)據(jù)收發(fā)結(jié)構(gòu) 330
20.3 基本套接口函數(shù) 331
20.3.1 字節(jié)操作函數(shù) 331
20.3.2 字節(jié)序操作函數(shù) 333
20.3.3 地址轉(zhuǎn)換函數(shù) 334
20.3.4 套接口函數(shù) 337
20.4 套接口選項 352
20.4.1 套接口選項函數(shù) 352
20.4.2 SO_KEEPALIVE選項 352
20.4.3 SO_LINGER選項 353
20.4.4 SO_RCVBUF和SO_SNDBUF選項 355
20.4.5 SO_RCVTIMEO和SO_SNDTIMEO選項 356
20.4.6 SO_REUSEADDR和SO_REUSEPORT選項 357
20.5 TCP套接口編程 357
20.5.1 重復(fù)服務(wù)器編程 357
20.5.2 并發(fā)服務(wù)器編程 357
20.6 UDP套接口編程 362
20.6.1 UDP編程模型 363
20.6.2 UDP客戶/服務(wù)器編程 363
20.7 小結(jié) 366
第21章 綜合實例——銀行代理收費服務(wù)器 367
21.1 程序需求 367
21.2 程序?qū)崿F(xiàn) 367
21.3 小結(jié) 379
附錄 Linux下常見C函數(shù)字母索引 380

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號