Linux 環境下 C程序設計
黃繼海 石彥華
買這商品的人也買了...
-
$720$562 -
$306嵌入式 Linux C 語言完全精通教程
-
$539$512 -
$580$435 -
$948$901 -
$301精通 Nginx, 2/e ( Mastering NGINX, 2/e)
-
$354$336 -
$680$537 -
$403從 LTE 到 5G 移動通信系統 -- 技術原理及其 LabVIEW 實現
-
$352樹莓派用戶指南, 4/e
-
$354$336 -
$356Windows 10 深度攻略, 2/e
-
$1,134BPF 之巔:洞悉 Linux 系統和應用性能 (BPF Performance Tools)
-
$270C/C++ 代碼調試的藝術
-
$680$530 -
$894$849 -
$658奔跑吧 Linux 內核入門篇, 2/e
-
$602嵌入式 C語言自我修養 — 從芯片、編譯器到操作系統
-
$403嵌入式 Linux 接口開發技術
-
$709LTE-A 空中接口技術 (LTE-Advanced Air Interface Technology)
-
$714$678 -
$407Go 語言定製指南
-
$599$569 -
$600$468 -
$750$593
相關主題
商品描述
本書由淺入深,全面細致地講述了Linux環境C程序設計,從基本概念到實際操作,從原理到具體實踐,涵蓋了Linux環境下C程序設計的所有重要知識點。第1章介紹Linux操作系統的基本知識和Linux常用命令;第2章介紹常用C語言庫函數;第3章介紹Linux的開發環境;第4章至第9章介紹Linux系統編程,包括文件I/O、標準I/O庫、進程和信號以及進程間通信等方面的知識;第10章介紹網絡編程;第11章介紹GTK+編程。
作者簡介
中州大學信息工程學院副教授,講授課程《Linux環境下C程序設計》、《C程序設計》,主要研究項目及領域: 軟件編程、計算機網絡
目錄大綱
第一章Linux操作系統基礎1
1.1 GNU簡介1
1.2 Linux簡介1
1.2.1 Linux的內核與發行版2
1.2.2 Linux系統的特點3
1.3 Shell命令概述4
1 .3.1目錄的組織結構4
1.3.2用戶主目錄和文件的路徑5
1.3.3 Linux命令的語法結構6
1.3.4 Shell命令的分類6
1.3.5聯機幫助6
1.4文件與目錄操作7
1.4.1目錄操作7
1.4.2文件/目錄的創建10
1.4.3文件/目錄的刪除12
1.4.4文件/目錄的複制13
1.4.5文件/目錄的屬性修改15
1.5系統運行常用命令21
1.5.1進程操作21
1.5.2管道和重定向23
1.6查找操作命令25
1.6.1 grep 25
1.6.2 find 25
1.7其他常用命令27
1.7.1文件系統操作27
1.7.2用戶管理32
1.7.3網絡相關命令41
1.8 Linux應用軟件包管理42
1.8.1應用軟件包的分類42
1.8.2 RPM軟件包的管理42
1.9項目實訓一:linux基本命令43
1.10本章小結45
1.11習題一46
第2章常用的C語言庫函數48
2.1字符和字符串操作函數48
2.1.1字符操作函數48
2.1.2字符串操作函數51
2.2內存管理函數64
2.2.1動態內存分配函數64
2.2.2動態內存釋放函數67
2.2.3 memset函數69
2.2.4 memcpy函數69
2.2.5 memmove函數70
2.3日期與時間函數76
2.3.1 time函數76
2.3.2 localtime函數和gmtime函數76
2.3.3 asctime函數和ctime函數78
2.4隨機函數79
2.4.1 rand函數79
2.4.2 srand函數80
2.4.3 random函數和srandom函數81
2.4. 4 drand48函數和erand48函數82
2.5項目實訓83
2.6本章小結90
習題90
第3章編程環境91
3.1概述91
3.2 VIM編輯器92
3.2.1 VIM工作模式92
3.2.2 VIM操作流程93
3.2.3 VIM常用命令94
3.3 GCC編譯器97
3.3.1 GCC編譯器簡介97
3.3.2 GCC編譯過程98
3.3.3 GCC常用選項介紹100
3.2.4庫依賴原理104
3.4 GDB程序調試器105
3.4.1在程序中加入調試信息106
3 .4.2啟動和退出GDB調試器106
3.4.3顯示和查找程序源代碼107
3.4.4設置和管理斷點108
3.4.5執行程序和獲得幫助108
3.4.6控製程序的執行109
3.4.7查看和設置變量的值109
3.5 Make工程管理器110
3.5.1 Make工程管理概述110
3.5.2 Makefile基本結構111
3.5.3 Makefile變量117
3.5.4 Makefile規則119
3.6項目實訓:Makefile的編寫121
3.6.1實訓描述121
3.6.2編寫流程123
3.6.3 Make腳本的測試125
3. 7本章小結125
習題125
第四章文件操作128
4.1文件系統128
4.1.1超級塊129
4.1.2索引節點129
4.2基於文件描述符的I/O操作129
4.2.1文件的創建、打開與關閉130
4.2.2文件的讀寫操作132
4.2.3文件的定位134
4.2.4文件屬性的修改136
4.2.5目錄文件的操作138
4.3項目實訓四:日誌管理功能139
4.3.1實訓描述139
4.3.2實訓要求139
4.3.3實訓參考139
4.4本章小結141
4.5習題四141
第五章標準I/O庫143
5.1標準流的I/O操作143
5.2流的打開和關閉143
5.3緩衝區的操作144
5.4直接輸入輸出145
5.5格式化輸入輸出148
5 .6基於字符和行的輸入輸出151
1.7項目實訓五:出錯管理功能154
5.7.1項目描述154
5.7.2項目要求154
5.7.3實訓參考155
5.8本章小結156
5.9習題五156
第六章進程控制157
6.1進程概述157
6.1.1什麼是進程157
6.1.2進程狀態158
6.1.3 Linux進程環境158
6.1.4進程的內存映像159
6. 2進程控制160
6.2.1進程創建160
6.2.2進程等待163
6.2.3結束進程165
6.2.4 system函數169
6.3項目實訓六:進程的實現170
6. 3.1實訓描述170
6.3.2參考代碼170
6.3.3編譯運行171
6.4本章小結171
6.5習題六172
第七章線程控制173
7.1線程控制173
7.1 .1線程的創建173
7.1.2線程的終止175
7.1.3線程的同步177
7.1.4私有數據182
7.2項目實訓七:線程的實現185
7.2.1實訓描述185
7.2.2參考代碼185
7.2.3編譯186
7.3本章小結186
7.4習題七187
第八章進程間通信188
8.1概述188
8.2共享內存189
8.3信號量194
8.4管道通信201
8.4.1管道的創建和關閉201
8.4.2管道的讀寫操作201
8.5命名管道204
8.5. 1命名管道的創建204
8.5.2命名管道的使用205
8.6消息隊列209
8.6.1消息隊列的創建與打開210
8.6.2向消息隊列中發送消息211
8.6. 3從消息隊列中接收消息211
8.6.4消息隊列的控制212
8.6.5綜合示例212
8.7項目實訓八:進程之間通信功能的實現218
8.7.1實訓描述218
8.7.2參考代碼218
8.7.3編譯運行219
8.8本章小結220
8.9習題八220
第九章信號及信號處理221
9.1信號及其使用221
9.1.1 Linux信號的產生221
9.1.2信號的種類221
9.1.3對信號的響應224
9.2信號處理224
9.2.1信號的捕獲與處理224
9.2.2信號的屏蔽225
9.2.3信號的發送228
9.3本章小結230
9.4項目實訓:信號的處理230
9.4.1實訓描述230
9.4.2參考代碼230
9.4.3編譯運行232
9.5習題九233
第十章網絡編程234
10.1網絡編程的基本概念234
10.1.1 IP地址234
10.1.2端口234
10.1.3域名235
10.1.4 TCP和UDP 235
10.2網絡編程基礎235
10.2.1套接字的概念235
10.2.3 Socket地址結構236
10.3網絡地址的轉換237
10.3.1主機字節序與網絡字節序237
10.3.2字節處理函數238
10.3.3地址轉換函數238
10.3.4域名與IP地址轉換239
10.3 TCP通信編程242
10.3.1 TCP通信原理242
10.3.2創建套接字243
10.3.3綁定套接字244
10.3.4在套接字上監聽244
10.3.5接受連接244
10.3.6建立連接245
10.3.7數據通信245
10.3 .8關閉連接246
10.3.9基於TCP套接口編程示例246
10.4 UDP通信編程251
10.4.1 UDP通信原理251
10.4.2數據通信252
10.4.3基於UDP套接口編程示例253
10. 5本章小結257
10.6項目實訓:局域網文件下載257
10.6.1實訓描述257
10.6.2參考代碼257
10.6.3編譯運行262
10.7習題十263
第十一章Gtk+圖形界面編程264
11.1 Linux圖形界面開發264
1.1.1 Linux圖形用戶環境264
1.1.2 Gtk+簡介265
11.2 Gtk+程序結構265
11.2.1第一個Gtk+程序265
11 .2.2 GTK+的數據類型266
11.2.3初始化GTK+ 266
11.2.4創建和顯示窗口/構件267
11.2.5 GTK+的主循環267
11.3基本控件268
11.3.1窗口268
11.3.2標籤271
11.3.3按鈕273
11.3.4文本框275
11.4佈局控件276
11.4.1表格276
11.4.2框279
11.5信號與事件282
11.6常用控件285
11.6.1下拉菜單285
11.6.2對話框288
11.6項目實訓:貪吃蛇遊戲290
11. 6.1任務描述290
11.6.2設計思路290
11.6.3模塊結構290
11.6.4界面設計291
11.6.5設計描述292
11.6.7遊戲測試298
11.6. 8設計總結299
11.7本章小結299
11.8習題十一299