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

Linux編程從入門到精通

Linux編程從入門到精通

定 價:¥49.80

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

購買這本書可以去


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

內容簡介

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

作者簡介

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

圖書目錄

第一篇 系統(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 內核的組成 8
1.3 主流Linux操作系統(tǒng)及發(fā)行版本 10
1.3.1 Linux內核的版本 10
1.3.2 Linux的發(fā)行版本 10
1.4 小結 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編程基礎 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運算符的應用 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腳本中使用函數 27
2.3 綜合實例 28
2.3.1 實例需求 28
2.3.2 系統(tǒng)設計 28
2.3.3 程序代碼 28
2.4 小結 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 關鍵字 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 語句與控制結構 43
3.3.1 表達式語句的組成 43
3.3.2 復合語句 44
3.3.3 函數調用語句 44
3.3.4 控制語句 44
3.3.5 循環(huán)控制語句 47
3.3.6 轉移語句 48
3.4 函數與程序結構 48
3.4.1 庫函數 48
3.4.2 用戶自定義函數 49
3.5 數組 49
3.5.1 一維數組的定義和使用 49
3.5.2 多維數組的定義和使用 50
3.6 結構 52
3.6.1 結構的定義 52
3.6.2 結構成員的引用 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 冒泡排序算法實現 56
3.9 小結 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轉義命令 65
4.3 vi編輯器的選項 66
4.3.1 選項的含義 66
4.3.2 選項的設置方式 67
4.4 小結 68
第5章 gcc編譯器 69
5.1 編譯過程簡述 69
5.1.1 預編譯過程 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 小結 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中使用函數 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應用的環(huán)境 86
6.4.2 makefile的實現及解釋 86
6.5 小結 87
第7章 程序調試 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 內存泄露的檢查 92
7.1.6 其他可能的內存錯誤 93
7.2 gdb介紹 94
7.2.1 利用gdb調試的前提 94
7.2.2 啟動gdb的方法 94
7.2.3 gdb的基本功能 95
7.3 使用gdb進行調試實例 97
7.4 小結 98
第8章 創(chuàng)建與使用庫 99
8.1 函數庫介紹 99
8.1.1 系統(tǒng)函數庫的使用 99
8.1.2 用戶自定義函數庫的創(chuàng)建和使用 100
8.2 庫函數與系統(tǒng)調用 102
8.2.1 系統(tǒng)調用介紹 103
8.2.2 庫函數介紹 104
8.3 動態(tài)庫的創(chuàng)建與使用 105
8.4 綜合實例 108
8.5 小結 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 文件權限管理 120
9.2 文件基本操作 125
9.2.1 文件編程的基本概念 125
9.2.2 文件的創(chuàng)建與打開 126
9.2.3 文件的讀寫 130
9.2.4 文件的關閉與刪除 133
9.2.5 文件的隨機存取 135
9.3 文件安全編程 137
9.3.1 文件的屬主及用戶組編程 137
9.3.2 設置文件權限(UGO模式) 139
9.3.3 設置文件權限(ACL模式) 141
9.4 文件屬性編程 145
9.5 目錄編程 148
9.6 綜合實例 152
9.6.1 ELF文件格式 152
9.6.2 程序實現 152
9.7 小結 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 打開關閉流文件 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 小結 174
第11章 界面程序設計——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 啟動設計器 177
11.3.2 設計器界面元素介紹 178
11.4 Qt程序開發(fā) 179
11.4.1 建立新項目 179
11.4.2 設計窗口 179
11.4.3 添加事件處理程序 181
11.4.4 添加主程序 182
11.5 Qt程序的生成 183
11.6 小結 184
第12章 界面程序設計——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+實現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 小結 194
第13章 進程 195
13.1 進程的基本概念 195
13.1.1 進程的屬性 195
13.1.2 進程的內存映像 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 進程的入口函數 206
13.2.2 進程的環(huán)境變量 211
13.2.3 進程的內存分配 213
13.3 進程的創(chuàng)建 214
13.3.1 調用fork創(chuàng)建進程 214
13.3.2 調用exec系列函數執(zhí)行程序 216
13.3.3 調用system創(chuàng)建進程 219
13.4 進程的終止 220
13.4.1 調用exit退出進程 220
13.4.2 調用wait等待進程退出 220
13.5 小結 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 信號處理函數的實現 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 設置定時器 241
14.5 SIGCLD信號 242
14.5.1 子進程的退出過程 242
14.5.2 SIGCLD信號的處理 243
14.6 小結 244
第四篇 進程間通信(IPC)及網絡編程
第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 關閉管道 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 小結 259
第16章 進程間通信——消息隊列 260
16.1 System V進程間通信概述 260
16.1.1 Shell環(huán)境控制IPC 260
16.1.2 進程間通信關鍵字 262
16.1.3 進程間通信標識符 262
16.1.4 IPC權限許可結構 263
16.2 消息隊列基本概念 264
16.2.1 隊列 264
16.2.2 消息 264
16.2.3 消息隊列 265
16.3 消息隊列編程 266
16.3.1 鍵值生成函數 266
16.3.2 創(chuàng)建消息隊列 267
16.3.3 消息發(fā)送 270
16.3.4 消息接收 272
16.3.5 控制消息隊列 274
16.4 小結 276
第17章 進程間通信——共享內存 277
17.1 共享內存基本概念 277
17.1.1 共享內存編程模型 277
17.1.2 共享內存的映射 277
17.1.3 共享內存數據結構 278
17.2 共享內存編程 279
17.2.1 創(chuàng)建共享內存 279
17.2.2 映射共享內存 281
17.2.3 刪除共享內存映射 282
17.2.4 控制共享內存 283
17.3 小結 285
第18章 進程間通信——信號量 286
18.1 PV操作原理 286
18.1.1 PV操作的來源 286
18.1.2 PV操作的定義 287
18.1.3 PV操作的應用 288
18.2 信號量基本概念 290
18.2.1 Linux信號量簡介 290
18.2.2 信號量的控制結構 291
18.3 信號量編程 291
18.3.1 創(chuàng)建信號量 291
18.3.2 信號量操作 293
18.3.3 信號量控制 296
18.4 綜合實例——利用信號量實現生產者-消費者模型 299
18.4.1 需求 300
18.4.2 需求分析與設計 300
18.4.3 實現代碼及分析 300
18.5 小結 303
第19章 Linux網絡環(huán)境 304
19.1 計算機網絡基礎 304
19.1.1 計算機網絡分類 304
19.1.2 網絡拓撲結構 305
19.1.3 網絡通信協(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 網絡地址 311
19.2.4 端口 313
19.3 客戶機/服務器模型 314
19.4 傳輸控制協(xié)議 316
19.4.1 連接建立 316
19.4.2 連接關閉 316
19.4.3 TCP數據報格式 318
19.5 用戶數據報協(xié)議 319
19.6 小結 319
第20章 基本套接口編程 320
20.1 套接口編程簡述 320
20.1.1 半相關與全相關 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 數據傳輸方式 325
20.2 套接口數據結構 326
20.2.1 套接口地址結構 326
20.2.2 通用套接口地址結構 327
20.2.3 主機名稱數據結構 327
20.2.4 服務名稱數據結構 329
20.2.5 通用數據收發(fā)結構 330
20.3 基本套接口函數 331
20.3.1 字節(jié)操作函數 331
20.3.2 字節(jié)序操作函數 333
20.3.3 地址轉換函數 334
20.3.4 套接口函數 337
20.4 套接口選項 352
20.4.1 套接口選項函數 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 重復服務器編程 357
20.5.2 并發(fā)服務器編程 357
20.6 UDP套接口編程 362
20.6.1 UDP編程模型 363
20.6.2 UDP客戶/服務器編程 363
20.7 小結 366
第21章 綜合實例——銀行代理收費服務器 367
21.1 程序需求 367
21.2 程序實現 367
21.3 小結 379
附錄 Linux下常見C函數字母索引 380

本目錄推薦

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