注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)C/C++及其相關(guān)LInux C編程

LInux C編程

LInux C編程

定 價(jià):¥36.00

作 者: 李玉波,朱自強(qiáng),郭軍編著
出版社: 清華大學(xué)出版社
叢編項(xiàng): 程序員書庫
標(biāo) 簽: C

ISBN: 9787302113690 出版時(shí)間: 2005-09-01 包裝: 平裝
開本: 26cm 頁數(shù): 370 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書通過列舉大量的程序?qū)嵗到y(tǒng)地介紹了在Linux平臺(tái)下用c語言進(jìn)行程序開發(fā)的過程,以使讀者快速掌握在Linux平臺(tái)下進(jìn)行c程序開發(fā)的方法和技巧,并具備開發(fā)大型應(yīng)用程序的能力。本書除了示范各種Linuxc編程技術(shù)外,對(duì)于其中產(chǎn)生的關(guān)鍵程序代碼也進(jìn)行了詳細(xì)分析,讀者將從中更深一步地掌握Linuxc編程的相關(guān)知識(shí)。本書中的實(shí)例具有很強(qiáng)的代表性,都是目前Linuxc編程中經(jīng)常用到的,對(duì)這些實(shí)例稍作修改,即可應(yīng)用于實(shí)際Linuxc應(yīng)用程序的開發(fā)。本書系統(tǒng)地介紹了在Linux平臺(tái)下用C語言進(jìn)行程序開發(fā)的過程,通過列舉大量的程序?qū)嵗?,使讀者很快掌握在Linux平臺(tái)下進(jìn)行C程序開發(fā)的方法和技巧,并具備開發(fā)大型應(yīng)用程序的能力。本書內(nèi)容翔實(shí),主要包括:Linux平臺(tái)下c語言及其編程環(huán)境的介紹,c語言編譯器、調(diào)試工具和自動(dòng)維護(hù)工具的使用方法,Linux系統(tǒng)提供的特有函數(shù)調(diào)用,在c程序中訪問文件的方法,進(jìn)程的概念、進(jìn)程間通信及多進(jìn)程同步運(yùn)行的實(shí)現(xiàn)手段,c語言網(wǎng)絡(luò)編程方法以及curses編程等。本書結(jié)構(gòu)合理、概念清晰、實(shí)例豐富,并具有很強(qiáng)的啟發(fā)性和實(shí)用性,適合于有一定的c語言基礎(chǔ),需要在Linux系統(tǒng)上編程的程序設(shè)計(jì)人員閱讀。

作者簡(jiǎn)介

  李玉波,共創(chuàng)軟件聯(lián)盟BBS UNIX&Linux系統(tǒng)/網(wǎng)絡(luò)管理版版主。2002-2004年負(fù)責(zé)徐州空軍革學(xué)院網(wǎng)管中心網(wǎng)絡(luò)組建及維護(hù)及其學(xué)校網(wǎng)站的開發(fā),并參與開發(fā)總參組織的網(wǎng)絡(luò)教學(xué)系統(tǒng);2004年9月至今擔(dān)任空軍濟(jì)南某訓(xùn)練團(tuán)自動(dòng)化教研教員,兼新裝備研究室開發(fā)人員,曾參與多個(gè)部隊(duì)軟件項(xiàng)目的開發(fā),并獲軍隊(duì)科技進(jìn)步獎(jiǎng)。

圖書目錄

第1章  Linux下C語言編程簡(jiǎn)介 1
1.1  Linux簡(jiǎn)介 1
1.2  C語言的簡(jiǎn)介和特點(diǎn) 4
1.3  Linux程序設(shè)計(jì)基礎(chǔ)知識(shí) 5
1.3.1  程序安裝目錄 5
1.3.2  頭文件 5
1.3.3  庫文件 6
1.4  Linux下C語言編程環(huán)境
概述 7
1.5  Linux程序設(shè)計(jì)的特點(diǎn) 9
1.6  Linux下C語言編碼的風(fēng)格 10
1.6.1  GNU編程風(fēng)格 10
1.6.2  Linux 內(nèi)核編程風(fēng)格 11
第2章  vi與emacs編輯器 12
2.1  vim概述及應(yīng)用 12
2.2  emacs簡(jiǎn)介及應(yīng)用 17
2.3  Linux下的其他編輯器 21
2.3.1  最簡(jiǎn)單的文本編輯器ed 21
2.3.1  最容易上手的編輯器
pico 23
第3章  gcc編譯器 27
3.1  gcc簡(jiǎn)介 27
3.2  使用gcc 28
3.3  gcc警告提示功能 30
3.4  庫依賴 32
3.5  gcc代碼優(yōu)化 33
3.6  加速 34
3.7  gcc常用選項(xiàng) 35
3.8  gcc的錯(cuò)誤類型及對(duì)策 36
第4章  gdb調(diào)試器 38
4.1  gdb概述 38
4.2  使用gdb 41
4.2.1  gdb的命令概貌 42
4.2.2  gdb中運(yùn)行Linux的
shell程序 44
4.2.3  在gdb中運(yùn)行程序 44
4.2.4  調(diào)試已運(yùn)行的程序 45
4.2.5  暫停/恢復(fù)程序運(yùn)行 45
4.2.6  查看棧信息 52
4.2.7  查看源程序 54
4.2.8  查看運(yùn)行時(shí)數(shù)據(jù) 56
4.2.9  改變程序的執(zhí)行 64
第5章  使用make 68
5.1  makefile實(shí)例文件分析 68
5.1.1  make與makefile文件
的關(guān)系 69
5.1.2  在makefile文件中使用
變量 71
5.1.3  讓make自動(dòng)推導(dǎo)依賴
關(guān)系 72
5.1.4  另類風(fēng)格的makefile
文件 73
5.1.5  清空目標(biāo)文件的規(guī)則 73
5.2  makefile文件概述 74
5.3  make書寫規(guī)則 76
5.3.1  規(guī)則舉例 76
5.3.2  在規(guī)則中使用通配符 77
5.3.3  文件搜尋 78
5.3.4  偽目標(biāo) 79
5.3.5  多目標(biāo) 80
5.3.6  靜態(tài)模式 81
5.3.7  自動(dòng)生成依賴性 82
5.4  使用命令 84
5.4.1  顯示命令 84
5.4.2  執(zhí)行命令 84
5.4.3  命令出錯(cuò) 85
5.4.4  嵌套執(zhí)行make 85
5.4.5  定義命令包 87
5.5  使用變量 88
5.5.1  變量的基礎(chǔ) 88
5.5.2  賦值變量 89
5.5.3  變量的高級(jí)用法 91
5.5.4  追加變量值 93
5.5.5  override 指示符 94
5.5.6  多行變量 94
5.5.7  環(huán)境變量 95
5.5.8  目標(biāo)變量 95
5.5.9  模式變量 96
5.6  使用條件判斷 96
5.6.1  示例 97
5.6.2  語法 98
5.7  使用函數(shù) 100
5.7.1  函數(shù)的調(diào)用語法 100
5.7.2  字符串處理函數(shù) 100
5.7.3  文件名操作函數(shù) 104
5.7.4  foreach 函數(shù) 105
5.7.5  if 函數(shù) 106
5.7.6  call函數(shù) 106
5.7.7  origin函數(shù) 107
5.7.8  shell函數(shù) 108
5.7.9  控制make的函數(shù) 108
5.8  make的運(yùn)行 109
5.8.1  make的退出碼 109
5.8.2  指定makefile文件 110
5.8.3  指定目標(biāo) 110
5.8.4  檢查規(guī)則 111
5.8.5  make的參數(shù) 112
5.9  隱含規(guī)則 115
5.9.1  使用隱含規(guī)則 116
5.9.2  隱含規(guī)則一覽 117
5.9.3  隱含規(guī)則使用的變量 119
5.9.4  隱含規(guī)則鏈 121
5.9.5  定義模式規(guī)則 121
5.9.6  隱含規(guī)則搜索算法 125
5.10  使用make更新函數(shù)庫
文件 126
5.10.1  函數(shù)庫文件的成員 126
5.10.2  函數(shù)庫成員的隱含規(guī)則 127
5.10.3  函數(shù)庫文件的后綴規(guī)則 127
5.10.4  注意事項(xiàng) 128
第6章  文件的操作 129
6.1  Linux的文件結(jié)構(gòu) 129
6.1.1  目錄結(jié)構(gòu) 129
6.1.2  文件和設(shè)備 130
6.2  系統(tǒng)調(diào)用和設(shè)備驅(qū)動(dòng)程序 132
6.3  庫函數(shù) 132
6.4  硬件設(shè)備文件的底層訪問 133
6.4.1  write系統(tǒng)調(diào)用 134
6.4.2  read系統(tǒng)調(diào)用 135
6.4.3  open系統(tǒng)調(diào)用 136
6.4.4  creat系統(tǒng)調(diào)用 137
6.4.5  訪問權(quán)限的初始化值 137
6.4.6  umask變量 138
6.4.7  close系統(tǒng)調(diào)用 139
6.4.8  ioctl系統(tǒng)調(diào)用 140
6.4.9  lseek系統(tǒng)調(diào)用 142
6.4.10  fstat、stat和lstat系統(tǒng)
調(diào)用 144
6.4.11  dup和dup2系統(tǒng)調(diào)用 145
6.5  文件和目錄的維護(hù) 146
6.5.1  chmod系統(tǒng)調(diào)用 146
6.5.2  chown系統(tǒng)調(diào)用 147
6.5.3  unlink、link、symlink
系統(tǒng)調(diào)用 147
6.5.4  mkdir和rmdir系統(tǒng)調(diào)用 148
6.5.5  chdir系統(tǒng)調(diào)用和getcwd
函數(shù) 148
第7章  標(biāo)準(zhǔn)I/O庫 149
7.1  流和FILE對(duì)象 149
7.2  標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)
準(zhǔn)出錯(cuò) 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  輸入函數(shù) 154
7.5.2  輸出函數(shù) 156
7.6  每次一行I/O 156
7.7  標(biāo)準(zhǔn)I/O的效率 157
7.8  二進(jìn)制I/O 158
7.9  定位流 160
7.10  格式化I/O 161
7.10.1  格式化輸出 161
7.10.2  格式化輸入 161
7.11  實(shí)現(xiàn)細(xì)節(jié) 162
7.12  臨時(shí)文件 162
第8章  進(jìn)程控制 163
8.1  進(jìn)程概述 163
8.1.1  進(jìn)程的狀態(tài)及其狀態(tài)
轉(zhuǎn)換 163
8.1.2  Linux進(jìn)程簡(jiǎn)介 165
8.1.3  進(jìn)程控制 166
8.1.4  進(jìn)程調(diào)度的概念 168
8.2  進(jìn)程的一般操作 169
8.2.1  獲得進(jìn)程id 169
8.2.2  fork創(chuàng)建進(jìn)程 170
8.2.3  exec系統(tǒng)調(diào)用 172
8.2.4  exit和_exit 177
8.2.5  wait系統(tǒng)調(diào)用 179
8.2.6  sleep函數(shù)調(diào)用 187
8.3  進(jìn)程的特殊操作 187
8.3.1  setuid和setgid系統(tǒng)
調(diào)用 188
8.3.2  setpgrp和setpgid系統(tǒng)
調(diào)用 189
8.3.3  chdir系統(tǒng)調(diào)用 190
8.3.4  chroot系統(tǒng)調(diào)用 190
8.3.5  nice系統(tǒng)調(diào)用 191
第9章  進(jìn)程間的通信 192
9.1  Linux下進(jìn)程通信概述 192
9.2  管道及有名管道 193
9.2.1  管道概述及相關(guān)API
應(yīng)用 194
9.2.2  有名管道概述及相關(guān)API
應(yīng)用 201
9.3  信號(hào)及其處理 207
9.3.1  信號(hào)及信號(hào)來源 207
9.3.2  信號(hào)的種類 207
9.3.3  進(jìn)程對(duì)信號(hào)的響應(yīng) 209
9.3.4  信號(hào)的發(fā)送 209
9.3.5  信號(hào)的安裝(設(shè)置信號(hào)關(guān)
聯(lián)動(dòng)作) 212
9.3.6  信號(hào)集及信號(hào)集操作
函數(shù) 215
9.3.7  信號(hào)阻塞與信號(hào)未決 216
9.3.8  信號(hào)生命周期 216
9.3.9  信號(hào)編程注意事項(xiàng) 218
9.3.10  信號(hào)應(yīng)用實(shí)例 220
9.4  消息隊(duì)列 224
9.4.1  消息隊(duì)列基本概念 225
9.4.2  操作消息隊(duì)列 225
9.4.3  獲得或設(shè)置消息隊(duì)列
屬性 226
9.4.4  消息隊(duì)列的限制 229
9.4.5  消息隊(duì)列應(yīng)用實(shí)例 230
9.5  信號(hào)燈概述 232
9.5.1  操作信號(hào)燈 233
9.5.2  信號(hào)燈的限制 235
9.5.3  競(jìng)爭(zhēng)問題 236
9.5.4  信號(hào)燈應(yīng)用實(shí)例 236
9.6  共享內(nèi)存 239
9.6.1  內(nèi)核怎樣保證各個(gè)進(jìn)程
尋址到同一個(gè)共享內(nèi)存
區(qū)域的內(nèi)存頁面 240
9.6.2  mmap()及其相關(guān)系統(tǒng)
調(diào)用 241
9.6.3  mmap()范例 242
9.6.4  對(duì)mmap()返回地址的
訪問 246
9.6.5  系統(tǒng)V共享內(nèi)存原理 249
9.6.6  系統(tǒng)V共享內(nèi)存API 250
9.6.7  系統(tǒng)V共享內(nèi)存限制 250
9.6.8  系統(tǒng)V共享內(nèi)存范例 250
9.7  套接口(Sockets)通信 253
第10章  線程簡(jiǎn)介 254
10.1  線程概述 254
10.2  創(chuàng)建線程 255
10.2.1  線程創(chuàng)建屬性 255
10.2.2  線程創(chuàng)建的Linux
實(shí)現(xiàn) 256
10.3  線程取消 256
10.3.1  線程取消的語義 256
10.3.2  取消點(diǎn) 257
10.3.3  程序設(shè)計(jì)方面的
考慮 257
10.3.4  與線程取消相關(guān)的
pthread函數(shù) 257
10.4  私有數(shù)據(jù) 258
10.4.1  創(chuàng)建和注銷 258
10.4.2  訪問 259
10.4.3  使用范例 259
10.5  互斥鎖 261
10.5.1  創(chuàng)建和銷毀 261
10.5.2  互斥鎖屬性 261
10.5.3  鎖操作 262
10.5.4  其他 262
10.6  條件變量 263
10.6.1  創(chuàng)建和注銷 263
10.6.2  等待和激發(fā) 263
10.6.3  其他 264
10.7  異步信號(hào) 266
10.8  線程終止 267
10.8.1  線程終止方式 267
10.8.2  線程終止時(shí)的清理 267
10.8.3  線程終止的同步及其
返回值 268
10.8.4  關(guān)于pthread_exit()和
return 269
10.9  雜項(xiàng) 269
10.9.1  獲得本線程ID 270
10.9.2  判斷兩個(gè)線程是否為
同一線程 270
10.9.3  僅執(zhí)行一次的操作 270
10.9.4  pthread_kill_other_
threads_np() 271
第11章  curses編程簡(jiǎn)介 273
11.1  curses基本結(jié)構(gòu) 273
11.2  顏色和屬性 276
11.3  窗口和基墊 279
11.4  光標(biāo)和屏幕輸出 285
11.5  鍵盤輸入 288
11.5.1  cbreak() 288
11.5.2  延遲模式 288
11.5.3  回顯模式和輸出
延遲 289
11.5.4  功能鍵轉(zhuǎn)換 289
11.6  菜單 292
11.7  表單 296
11.8  用curses函數(shù)編寫一個(gè)
漢諾塔游戲 301
11.8.1  漢諾塔游戲 301
11.8.2  定義數(shù)據(jù)結(jié)構(gòu) 302
11.8.3  柱的實(shí)現(xiàn) 302
11.8.4  盤的實(shí)現(xiàn) 302
11.8.5  接收輸入的實(shí)現(xiàn) 303
11.8.6  移動(dòng)盤的實(shí)現(xiàn) 303
第12章  網(wǎng)絡(luò)編程 311
12.1  TCP/IP簡(jiǎn)介 311
12.1.1  IP及相關(guān)協(xié)議 312
12.1.2  傳輸控制協(xié)議TCP 317
12.1.3  用戶數(shù)據(jù)報(bào)協(xié)議
UDP 319
12.2  Socket編程簡(jiǎn)介 319
12.2.1  Socket編程相關(guān)數(shù)據(jù)
類型定義 320
12.2.2  打開Socket 描述符、
建立綁定并建立連接 320
12.2.3  Listen()-- 監(jiān)聽是
否有服務(wù)請(qǐng)求 321
12.2.4  accept()-- 連接端
口的服務(wù)請(qǐng)求 322
12.2.5  send()和recv()-- 
數(shù)據(jù)傳輸 322
12.2.6  sendto()和recvfrom()
-- 利用數(shù)據(jù)報(bào)方式
進(jìn)行數(shù)據(jù)傳輸 323
12.2.7  close()和shutdown()
-- 結(jié)束數(shù)據(jù)傳輸 323
12.2.8  DNS-- 域名服務(wù)
相關(guān)函數(shù) 324
12.3  面向連接的客戶機(jī)/服務(wù)器
代碼實(shí)例 324
12.4  ping命令的簡(jiǎn)單實(shí)現(xiàn) 328
12.4.1  ping命令簡(jiǎn)介 329
12.4.2  ICMP協(xié)議簡(jiǎn)介 329
12.4.3  IP報(bào)頭格式 330
12.4.4  ICMP報(bào)頭格式 331
12.4.5  ICMP數(shù)據(jù)報(bào) 333
12.4.6  數(shù)據(jù)統(tǒng)計(jì) 333
12.4.7  完整的ping 命令
代碼 334
第13章  實(shí)例一:Linux下CD
播放器 339
13.1  音頻CD 339
13.2  設(shè)備控制 340
13.3  音軌處理 342
13.3.1  計(jì)算音軌數(shù)目 342
13.3.2  定位音軌位置 344
13.3.3  獲取音軌信息 345
13.4  CD播放 347
13.4.1  播放(play) 347
12.4.2  停止(stop) 349
13.4.3  暫停(pause) 350
12.4.4  繼續(xù)(resume) 351
13.5  音量調(diào)節(jié) 352
13.6  子碼信息 354
第14章  實(shí)例二:一個(gè)簡(jiǎn)單的
服務(wù)器端/客戶端程序 357
附錄 361
參考文獻(xiàn) 371

本目錄推薦

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