注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計C/C++及其相關LInux C編程

LInux C編程

LInux C編程

定 價:¥36.00

作 者: 李玉波,朱自強,郭軍編著
出版社: 清華大學出版社
叢編項: 程序員書庫
標 簽: C

ISBN: 9787302113690 出版時間: 2005-09-01 包裝: 平裝
開本: 26cm 頁數: 370 字數:  

內容簡介

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

作者簡介

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

圖書目錄

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

本目錄推薦

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