TOP
0
0
即日起~6/30,暑期閱讀書展,好書7折起
Linux C編程從初學到精通(附2光碟)(簡體書)
滿額折

Linux C編程從初學到精通(附2光碟)(簡體書)

商品資訊

人民幣定價:69 元
定價
:NT$ 414 元
優惠價
87360
領券後再享88折起
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:10 點
相關商品
商品簡介
目次

商品簡介

《Linux C編程從初學到精通》深入淺出、循序漸進地講解了Linux平臺下的C程序設計,并通過大量的程序實例,以及綜合開發案例的演示,幫助讀者快速掌握Linux下C語言編程的方法和技巧。《Linux C編程從初學到精通》內容翔實,共分為三大部分。第一部分為基礎篇,共有5章,主要講解了Linux系統的概述、C語言編程基礎、Linux下的兩種常用文本編輯器vi和Emacs、程序編譯器gcc和調試器gdb,以及make管理工具。第二部分為提高篇,共有7章,主要講解了Linux系統下各種操作的系統調用,包括文件操作、進程控制、進程間通信、網絡編程、GTK+圖形界面編程等。第三部分為實踐篇,共有5章,分別為5個不同的Linux平臺下C程序開發的綜合案例,向讀者詳細闡述了Linux文件操作、GTK+圖形界面編程、Linux網絡編程,以及基于Linux平臺的嵌入式軟件開發的方法和技巧。
讀者對象:《Linux C編程從初學到精通》是由作者根據多年來的開發工作經驗編著而成,語言通俗易懂,內容豐富,注重實例講解,知識涵蓋面廣。非常適合Linux平臺下C語言編程的初學者以及高校本科生、研究生閱讀,也適合在Linux系統下進行C程序開發的工程師查閱和學習。

目次

第1部分 基礎篇
第1章 Linux系統概述 1
1.1 什么是Linux 2
1.2 Linux系統特點及主要功能 2
1.2.1 Linux系統特點 3
1.2.2 Linux系統的主要功能 3
1.3 Linux的內核版本和發行版本 5
1.4 系統的安裝 6
1.4.1 系統安裝前的準備工作 6
1.4.2 從光盤安裝Linux 6
1.4.3 從硬盤安裝Linux 22
1.4.4 在虛擬機下安裝Linux 22
1.5 Shell的使用 27
1.5.1 Shell簡介 27
1.5.2 常見Shell的種類 28
1.5.3 Shell的簡單使用 29
1.5.4 通配符 30
1.5.5 引號 31
1.5.6 注釋符 33
1.6 Linux常用命令 33
1.6.1 與目錄相關的命令 33
1.6.2 與文件相關的命令 34
1.6.3 與網絡服務相關的命令 35
1.7 本章小結 35
實戰演練 36
第2章 C語言編程基礎 37
2.1 C語言的歷史背景 38
2.2 C語言的特點 38
2.3 C語言的基本數據類型 39
2.3.1 整型 39
2.3.2 實型 40
2.3.3 字符型 41
2.4 運算符與表達式 43
2.4.1 算術運算符與算術表達式 43
2.4.2 賦值運算符與賦值表達式 44
2.4.3 逗號運算符與逗號表達式 45
2.5 C程序的3種基本結構 46
2.5.1 順序結構 46
2.5.2 選擇結構 47
2.5.3 循環結構 51
2.6 C語言中的數據輸入與輸出 54
2.6.1 字符輸出函數putchar 54
2.6.2 字符輸入函數getchar 54
2.6.3 格式輸出函數printf 54
2.6.4 格式輸入函數scanf 56
2.4 函數 57
2.7.1 函數的定義 57
2.7.2 函數的調用 58
2.7.3 變量的存儲類別 59
2.8 數組 62
2.8.1 一維數組的定義和使用 63
2.8.2 二維數組的定義和使用 64
2.8.3 字符數組和字符串 65
2.8.4 常用字符串處理函數 66
2.9 指針 69
2.9.1 地址和指針 69
2.9.2 指針的定義和使用 70
2.9.3 數組與指針 71
2.9.4 字符串與指針 72
2.9.5 指向函數的指針 72
2.10 結構體和共用體 73
2.10.1 定義和引用結構體 73
2.10.2 結構體數組 74
2.10.3 指向結構體的指針 74
2.10.4 共用體 75
2.10.5 使用typedef定義類型 77
2.11 鏈表 77
2.11.1 鏈表概述 77
2.11.2 建立動態單向鏈表 78
2.11.3 單向鏈表的輸出 80
2.11.4 對單向鏈表的刪除操作 80
2.11.5 對單向鏈表的插入操作 81
2.11.6 循環鏈表 82
2.11.7 雙向鏈表 82
2.12 位運算符和位運算 84
2.12.1 “按位與”運算符(&) 84
2.12.2 “按位或”運算符(|) 84
2.12.3 “取反”運算符(~) 84
2.12.4 “異或”運算符(^) 84
2.12.5 移位運算符(<<和>>) 85
2.12.6 位域 85
2.13 C語言預處理命令 86
2.13.1 宏定義 86
2.13.2 文件包含 87
2.13.3 條件編譯 88
2.13.4 #error等其他常用預處理命令 89
2.14 本章小結 89
實戰演練 90
第3章 vi與Emacs編輯器 91
3.1 vi的使用 92
3.1.1 啟動與退出vi 92
3.1.2 vi的命令行模式 93
3.1.3 vi的插入模式 96
3.1.4 vi的底行模式 96
3.2 vi使用實例 97
Emacs的使用 100
3.3.1 啟動與退出Emacs 101
3.3.2 Emacs下的基本操作 102
3.4 Emacs使用實例 107
3.5 本章小結 109
實戰演練 109
第4章 gcc編譯器與gdb調試器 110
4.1 gcc編譯器簡介 111
4.2 如何使用gcc 112
4.2.1 gcc編譯初步 112
4.2.2 警告提示功能 114
4.2.3 優化gcc 116
4.2.4 連接庫 119
4.2.5 同時編譯多個源程序 120
4.2.6 管道 120
4.2.7 調試選項 121
4.3 gdb調試器 122
4.3.1 gdb簡介 122
4.3.2 gdb常用命令 123
4.3.3 gdb調試初步 124
4.4 gdb的使用詳解 126
4.4.1 調用gdb 127
4.4.2 使用斷點 127
4.4.3 查看運行時數據 129
4.4.4 查看源程序 133
4.4.5 改變程序的執行 135
4.5 xxgdb調試器簡介 138
4.6 本章小結 139
實戰演練 139
第5章 make的使用和Makefile的編寫 141
5.1 什么是make 142
5.1.1 make機制概述 142
5.1.2 make與Makefile的關系 144
5.2 Makefile的書寫規則 147
5.2.1 Makefile的基本語法規則 148
5.2.2 在規則中使用通配符 149
5.2.3 偽目標 149
5.2.4 多目標 151
5.2.5 自動生成依賴性 151
5.3 Makefile的命令 152
5.4 變量 154
5.4.1 變量的基礎 154
5.4.2 賦值變量 154
5.4.3 define關鍵字 156
5.4.4 override指示符 156
5.4.5 目標變量和模式變量 157
5.5 常用函數調用 158
5.5.1 字符串處理函數 158
5.5.2 文件名操作函數 162
5.5.3 循環函數 164
5.5.4 條件判斷函數 165
5.5.5 其他常用函數 166
5.6 隱式規則 168
5.6.1 隱式規則舉例 168
5.6.2 隱式規則中的變量 169
5.6.3 使用模式規則 171
5.7 本章小結 173
實戰演練 173

第2部分 提高篇
第6章 文件I/O操作 174
6.1 Linux文件系統簡介 175
6.1.1 Linux的文件系統結構 175
6.1.2 文件類型 176
6.1.3 文件訪問權限 179
6.2 基于文件描述符的I/O操作 179
6.2.1 文件描述符 180
6.2.2 標準輸入、標準輸出和標準出錯 180
6.2.3 文件重定向 181
6.2.4 文件的創建、打開與關閉 182
6.2.5 文件的定位 186
6.2.6 文件的讀寫 188
6.3 文件的屬性操作 192
6.3.1 改變文件訪問權限 192
6.3.2 改變文件所有者 193
6.3.3 重命名 193
6.3.4 修改文件長度 194
6.4 文件的其他操作 195
6.4.1 stat、fstat和lstat函數 195
6.4.2 dup和dup2函數 196
6.4.3 fcntl函數 197
6.4.4 sync和fsync函數 197
6.5 特殊文件的操作 198
6.5.1 目錄文件的操作 198
6.5.2 鏈接文件的操作 201
6.5.3 管道文件的操作 204
6.5.4 設備文件 204
6.6 本章小結 205
實戰演練 205
第7章 基于流的I/O操作 207
7.1 流與緩存 207
7.1.1 流和FILE對象 207
7.1.2 標準輸入、標準輸出和標準出錯 207
7.1.3 緩存 207
7.1.4 對緩存的操作 210
7.2 流的打開與關閉 212
7.2.1 流的打開 212
7.2.2 流的關閉 214
7.2.3 流關閉前的工作 216
7.3 流的讀寫 216
7.3.1 基于字符的I/O 217
7.3.2 基于行的I/O 220
7.3.3 直接I/O 222
7.3.4 格式化I/O 224
7.4 本章小結 226
實戰演練 227
第8章 進程控制 228
8.1 進程的基本概念 229
8.1.1 Linux進程簡介 229
8.1.2 進程與作業 230
8.1.3 進程標識 230
8.2 進程控制的相關函數 232
8.2.1 fork和vfork函數 232
8.2.2 exec函數 237
8.2.3 exit和_exit函數 242
8.2.4 wait和waitpid函數 245
8.2.5 進程的一生 251
8.2.6 用戶ID和組ID 251
8.2.7 system函數 253
8.3 多個進程間的關系 255
8.3.1 進程組 255
8.3.2 會話期 256
8.3.3 控制終端 257
8.4 本章小結 259
實戰演練 259
第9章 信號 260
9.1 Linux信號簡介 261
9.1.1 信號的基本概念 261
9.1.2 信號處理機制 265
9.2 信號操作的相關函數 267
9.2.1 信號的處理 267
9.2.2 信號的發送 274
9.2.3 信號的阻塞 282
9.2.4 計時器與信號 284
9.3 本章小結 286
實戰演練 287
第10章 進程間通信 289
10.1 進程間通信簡介 289
10.2 管道 290
10.2.1 管道的概念 290
10.2.2 管道的創建與關閉 291
10.2.3 管道的讀寫 292
10.3 命名管道 297
10.3.1 命名管道的概念 297
10.3.2 命名管道的創建 297
10.3.3 命名管道的讀寫 299
10.4 消息隊列 303
10.4.1 消息隊列的概念 303
10.4.2 消息隊列的創建與打開 305
10.4.3 消息隊列的讀寫 306
10.4.4 獲得或設置消息隊列屬性 308
10.5 共享內存 312
10.5.1 共享內存的概念 312
10.5.2 共享內存的相關操作 313
10.6 信號量 318
10.6.1 信號量的概念 319
10.6.2 信號量集的相關操作 320
10.7 本章小結 325
實戰演練 326
第11章 網絡編程 327
11.1 網絡編程的基礎知識 328
11.1.1 計算機網絡體系結構 328
11.1.2 傳輸控制協議TCP 333
11.1.3 用戶數據報協議UDP 335
11.1.4 客戶機/服務器模式 336
11.2 套接口編程基礎 336
11.2.1 什么是套接口 337
11.2.2 端口號的概念 338
11.2.3 套接口的數據結構 338
11.2.4 基本函數 340
11.3 TCP套接口編程 343
11.3.1 TCP套接口通信工作流程 343
11.3.2 TCP套接口Client/Server程序實例 356
11.4 UDP套接口編程 360
11.4.1 UDP套接口通信工作流程 360
11.4.2 UDP套接口Client/Server程序實例 362
11.5 原始套接口編程 365
11.5.1 原始套接口的創建 365
11.5.2 原始套接口程序實例 365
11. 本章小結 376
實戰演練 376
第12章 Linux圖形界面編程 377
12.1 Linux下的圖形界面編程簡介 378
12.1.1 Qt簡介 378
12.1.2 GTK+簡介 378
12.2 界面基本元件 381
12.2.1 一個簡單的例子 381
12.2.2 窗口 383
12.2.3 標簽 385
12.2.4 按鈕 386
12.2.5 文本框 387
12.3 界面布局元件 389
12.3.1 表格 390
12.3.2 框 393
12.3.3 窗格 395
12.4 其他常用元件 398
12.4.1 進度條、微調按鈕、組合框 398
12.4.2 單選按鈕、復選按鈕 402
12.4.3 下拉菜單 404
12.5 信號與回調函數 406
12.6 本章小結 409
實戰演練 409

第3部分 實戰篇
第13章 設計Linux下的計算器 411
13.1 軟件功能分析 412
13.2 程序模塊的劃分 413
13.3 軟件的具體實現 415
13.3.1 頭文件 415
13.3.2 十六進制界面顯示函數 416
13.3.3 十進制界面顯示函數 417
13.3.4 八進制界面顯示函數 418
13.3.5 二進制界面顯示函數 419
13.3.6 進制間轉換函數 420
13.3.7 信號處理模塊 423
13.3.8 主函數 432
13.4 軟件使用效果演示 438
13.5 本章小結 439
第14章 Linux平臺下聊天軟件的設計 440
14.1 軟件功能概述 441
14.1.1 服務器端功能需求 441
14.1.2 客戶端功能需求 442
14.1.3 錯誤處理需求 442
14.2 Glade集成開發工具簡介 443
14.3 軟件功能模塊劃分 444
14.3.1 服務器功能模塊劃分 444
14.3.2 客戶端功能模塊劃分 445
14.3.3 消息標識的定義 445
14.3.4 消息結構體的設計 446
14.4 服務器程序的具體實現 447
14.4.1 服務器消息處理流程 447
14.4.2 服務器主要函數和變量 448
14.4.3 服務器消息處理模塊的設計與實現 449
14.4.4 服務器數據存儲的方法 450
14.4.5 用戶注冊流程 450
14.5 客戶端程序的具體實現 451
14.5.1 客戶端操作流程 451
14.5.2 客戶端發送和接收消息流程 451
14.5.3 客戶端主要函數和變量 452
14.5.4 客戶端功能模塊的設計與實現 453
14.6 聊天軟件使用效果演示 455
14.7 本章小結 459
第15章 Linux遠程管理工具的設計 460
15.1 軟件功能概述 461
15.1.1 Webmin簡介 461
15.1.2 軟件總體設計 461
15.2 服務器端程序設計 463
15.2.1 服務器端工作流程 463
15.2.2 系統用戶管理操作 464
15.2.3 系統用戶組的操作 466
15.2.4 系統服務啟動管理 468
15.2.5 DNS管理操作 469
15.2.6 Apache服務管理操作 471
15.2.7 FTP服務管理操作 474
15.3 客戶端程序 475
15.3.1 連接界面 475
15.3.2 主界面 477
15.6 本章小結 479
第16章 Linux下簡易防火墻軟件的設計 480
16.1 Netfilter基礎 481
16.1.1 什么是Netfilter 481
16.1.2 Netfilter的HOOK機制 482
16.1.3 HOOK的調用 485
16.1.4 HOOK的實現 486
16.1.5 IPTables簡介 488
16.1.6 Netfilter可以實現的控制功能 489
16.2 軟件設計概述 491
16.2.1 軟件整體框架 491
16.2.2 管理端的設計 492
16.2.3 控制端的設計 493
16.3 用Netfilter設計控制端功能模塊 495
16.3.1 ICMP管理控制模塊 495
16.3.2 FTP管理控制模塊 497
16.3.3 HTTP管理控制模塊 499
16.3.4 模塊的編譯、加載與卸載 499
16.4 軟件功能測試 501
16.5 本章小結 503
第17章 基于Linux的嵌入式家庭網關遠程交互操作平臺的設計 504
17.1 嵌入式技術簡介 505
17.1.1 嵌入式系統的概念 505
17.1.2 嵌入式操作系統 506
17.1.3 嵌入式處理器 507
17.2 家庭網關的概念及其網絡體系結構 509
17.2.1 智能家庭網絡的概念 509
17.2.2 家庭網關的遠程交互操作技術簡介 510
17.2.3 嵌入式家庭網關的網絡體系結構 510
17.3 嵌入式家庭網關的開發平臺 511
17.3.1 S3C2410微處理器簡介 511
17.3.2 交叉編譯環境的建立 513
17.4 遠程交互平臺的設計 515
17.4.1 應用軟件的開發模式 515
17.4.2 嵌入式Web服務器 516
17.4.3 通用網關接口CGI 519
17.5 Linux下軟件模塊的具體實現 520
17.5.1 登錄驗證模塊 521
17.5.2 串口通信模塊 521
17.5.3 中央空調控制模塊 522
17.5.4 智能水表數據采集模塊 528
17.5.5 試驗結果 528
17.6 本章小結 529

您曾經瀏覽過的商品

購物須知

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

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

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

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

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

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

暢銷榜

客服中心

收藏

會員專區