注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)Linux C與C++一線開發(fā)實(shí)踐

Linux C與C++一線開發(fā)實(shí)踐

Linux C與C++一線開發(fā)實(shí)踐

定 價(jià):¥159.00

作 者: 朱文偉 李建英
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787302663805 出版時(shí)間: 2024-06-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  Linux C/C 編程在Linux應(yīng)用程序開發(fā)中占有重要的地位,掌握這項(xiàng)技術(shù)將在就業(yè)競爭中立于不敗之地。《Linux C與C 一線開發(fā)實(shí)踐》內(nèi)容針對初中級讀者,貼近軟件公司一線開發(fā)實(shí)踐。全書厚達(dá)620多頁,知識點(diǎn)豐富,內(nèi)容翔實(shí),并配套示例源碼、作者QQ群答疑服務(wù)?!禠inux C與C 一線開發(fā)實(shí)踐》共分為16章,內(nèi)容包括Linux概述、搭建開發(fā)環(huán)境、C 語言基礎(chǔ)、Linux文件編程、多進(jìn)程編程、進(jìn)程間通信、C Web編程、多線程基本編程、多線程高級編程、Linux下的庫、TCP/IP基礎(chǔ)、套接字基礎(chǔ)、TCP套接字網(wǎng)絡(luò)編程、UDP套接字網(wǎng)絡(luò)編程、原始套接字網(wǎng)絡(luò)編程,以及并發(fā)聊天服務(wù)器項(xiàng)目實(shí)戰(zhàn)等?!禠inux C與C 一線開發(fā)實(shí)踐》適合想全面學(xué)習(xí)Linux環(huán)境下C/C 語言編程的讀者,既可作為初中級開發(fā)人員的案頭查閱與參考手冊,也適合作為高等院?;蚋呗毟邔O嚓P(guān)課程的教學(xué)參考書。

作者簡介

  朱文偉,名校計(jì)算機(jī)專業(yè)統(tǒng)招碩士,20多年CC 、Java開發(fā)經(jīng)驗(yàn)。主導(dǎo)開發(fā)過密碼、圖形、人工智能等產(chǎn)品。精通Linux、Windows系統(tǒng)開發(fā)及數(shù)據(jù)庫開發(fā)技術(shù)。著有圖書:《Rust編程與項(xiàng)目實(shí)戰(zhàn)》《嵌入式Linux驅(qū)動(dòng)開發(fā)實(shí)踐》《高性能Linux網(wǎng)絡(luò)編程核心技術(shù)揭秘》《Linux C/C 服務(wù)器開發(fā)實(shí)踐》《Qt 6.x從入門到精通》《PyQt 5從入門到精通》《Linux C與C 一線開發(fā)實(shí)踐》《Visual C 2017從入門到精通》《Windows C/C 加密解密實(shí)戰(zhàn)》《密碼學(xué)原理與Java實(shí)現(xiàn)》《OpenCV 4.5計(jì)算機(jī)視覺開發(fā)實(shí)戰(zhàn)(基于VC )》《OpenCV 4.5計(jì)算機(jī)視覺開發(fā)實(shí)戰(zhàn):基于Python》。

圖書目錄

第1章  Linux概述 1
1.1  什么是Linux 1
1.2  Linux的簡史 2
1.3  Linux和Windows的比較 4
1.4  Linux主要應(yīng)用領(lǐng)域 4
1.5  Linux的版本 5
1.6  使用哪個(gè)版本的Linux進(jìn)行學(xué)習(xí) 5
1.7  Linux的特點(diǎn) 6
1.8  如何學(xué)習(xí)Linux 6
1.9  命令行還是圖形界面 7
1.10  計(jì)算機(jī)啟動(dòng)的基本過程 7
1.10.1  按下電源 7
1.10.2  BIOS自檢 7
1.10.3  系統(tǒng)引導(dǎo) 9
1.10.4  啟動(dòng)內(nèi)核 10
1.11  認(rèn)識Shell 11
1.12  圖形界面和字符界面的切換 11
1.12.1  在不退出X-Window的情況下切換到字符界面 11
1.12.2  強(qiáng)行退出X-Window進(jìn)入文本模式 12
1.12.3  設(shè)置每次開機(jī)進(jìn)入字符界面 12
1.12.4  從字符界面進(jìn)入圖形界面 13
1.13  環(huán)境變量 14
第2章  搭建Linux C/C 開發(fā)環(huán)境 15
2.1  安裝和配置虛擬機(jī)Linux 15
2.1.1  在VMware下安裝Linux 15
2.1.2  開啟登錄時(shí)的root賬號 18
2.1.3  配置Linux虛擬機(jī)環(huán)境 20
2.1.4  配置Linux虛擬機(jī)網(wǎng)絡(luò) 24
2.1.5  通過終端工具連接Linux虛擬機(jī) 33
2.1.6  和虛擬機(jī)互傳文件 36
2.2  gcc/g 編譯器的使用 37
2.2.1  安裝C/C 編譯工具 37
2.2.2  gcc對C語言的編譯過程 37
2.2.3  gcc所支持的后綴名文件 41
2.2.4  gcc的語法格式 42
2.2.5  gcc常見選項(xiàng) 44
2.2.6  g 的基本使用 54
2.3  搭建集成式開發(fā)環(huán)境 55
2.3.1  基于Visual C 2017搭建IDE 56
2.3.2  基于Visual Studio Code搭建IDE 59
2.4  搭建非集成式開發(fā)環(huán)境 70
2.4.1  基于Visual Studio Code編輯和上傳源碼 70
2.4.2  為何要學(xué)gdb調(diào)試器 74
2.4.3  gdb簡介 74
2.4.4  重要準(zhǔn)備 74
2.4.5  啟動(dòng)gdb 75
2.4.6  退出gdb 75
2.4.7  gdb的常用命令概述 76
2.4.8  file命令加載程序 77
2.4.9  list命令顯示源碼 77
2.4.10  run命令運(yùn)行程序 80
2.4.11  break命令設(shè)置斷點(diǎn) 82
第3章  C 語言基礎(chǔ) 85
3.1  C 基礎(chǔ)知識 85
3.1.1  C 程序結(jié)構(gòu) 85
3.1.2  注釋 88
3.1.3  變量和數(shù)據(jù)類型 88
3.1.4  標(biāo)識 89
3.1.5  基本數(shù)據(jù)類型 89
3.1.6  變量的定義和C 11中的auto 90
3.1.7  變量的范圍 93
3.1.8  變量初始化 94
3.1.9  常量 95
3.1.10  操作符/運(yùn)算符 99
3.1.11  控制臺交互 106
3.2  控制結(jié)構(gòu) 110
3.2.1  條件結(jié)構(gòu) 111
3.2.2  循環(huán)結(jié)構(gòu) 112
3.2.3  分支控制和跳轉(zhuǎn) 115
3.2.4  選擇結(jié)構(gòu)語句switch 116
3.3  函數(shù) 118
3.4  函數(shù)高級話題 122
3.4.1  參數(shù)按數(shù)值傳遞和按地址傳遞 122
3.4.2  函數(shù)參數(shù)默認(rèn)值 124
3.4.3  函數(shù)重載 125
3.4.4  內(nèi)聯(lián)函數(shù) 125
3.4.5  遞歸 126
3.4.6  函數(shù)的聲明 127
3.5  高級數(shù)據(jù)類型 128
3.5.1  數(shù)組 128
3.5.2  指針 138
3.5.3  動(dòng)態(tài)分配內(nèi)存 148
3.5.4  結(jié)構(gòu)體 151
3.5.5  自定義數(shù)據(jù)類型 157
3.6  面向?qū)ο缶幊?160
3.6.1  類 160
3.6.2  構(gòu)造函數(shù)和析構(gòu)函數(shù) 163
3.6.3  構(gòu)造函數(shù)重載 165
3.6.4  類的指針 167
3.6.5  由關(guān)鍵字struct和union定義的類 168
3.6.6  操作符重載 168
3.6.7  關(guān)鍵字this 171
3.6.8  靜態(tài)成員 172
3.6.9  類之間的關(guān)系 173
3.6.10  多態(tài) 180
3.7  C 面向?qū)ο笮〗Y(jié) 186
3.8  C 高級知識 190
3.8.1  模板 190
3.8.2  命名空間 196
3.8.3  異常處理 200
3.8.4  預(yù)處理指令 203
3.8.5  預(yù)定義宏 206
3.8.6  C 11中的預(yù)定義宏 207
3.9  字符串 209
3.9.1  字符串基礎(chǔ) 209
3.9.2  搜索與查找 217
3.10  再論異常處理 225
3.10.1  基本概念 225
3.10.2  拋出異常 225
3.10.3  捕獲異常 226
3.10.4  C 標(biāo)準(zhǔn)異常 227
3.10.5  定義新的異常 227
3.11  再論函數(shù)模板 228
3.12  字符集 230
3.12.1  計(jì)算機(jī)上的3種字符集 230
3.12.2  查看Linux系統(tǒng)的字符集 232
3.12.3  修改Linux系統(tǒng)的字符集 233
3.12.4  Unicode編碼的實(shí)現(xiàn) 233
3.12.5  C運(yùn)行時(shí)庫對Unicode的支持 238
3.12.6  C 標(biāo)準(zhǔn)庫對Unicode的支持 238
3.12.7  字符集相關(guān)實(shí)例 239
第4章  Linux文件編程 240
4.1  文件系統(tǒng)及層次結(jié)構(gòu)標(biāo)準(zhǔn) 240
4.2  文件的屬性信息 241
4.3  i節(jié)點(diǎn) 242
4.3.1  基本概念 242
4.3.2  i節(jié)點(diǎn)的內(nèi)容 242
4.3.3  i節(jié)點(diǎn)的使用狀況 244
4.4  文件類型 246
4.4.1  普通文件 246
4.4.2  目錄 247
4.4.3  塊設(shè)備文件 248
4.4.4  字符設(shè)備文件 249
4.4.5  鏈接文件 249
4.5  文件權(quán)限 251
4.6  Linux文件I/O編程的基本方式 252
4.7  什么是I/O 252
4.8  Linux系統(tǒng)調(diào)用下的文件I/O編程 252
4.8.1  文件描述符 252
4.8.2  打開或創(chuàng)建文件 253
4.8.3  創(chuàng)建文件 255
4.8.4  關(guān)閉文件 256
4.8.5  讀取文件中的數(shù)據(jù) 257
4.8.6  向文件寫入數(shù)據(jù) 259
4.8.7  設(shè)定文件偏移量 260
4.8.8  獲取文件狀態(tài) 262
4.8.9  文件鎖定 263
4.8.10  建立文件和內(nèi)存映射 267
4.8.11  mmap和shm對比 270
4.9  C 方式下的文件I/O編程 271
4.9.1  流的概念 271
4.9.2  流的類庫 271
4.9.3  打開文件 272
4.9.4  關(guān)閉文件 274
4.9.5  寫入文件 274
4.9.6  讀取文件 274
4.9.7  文件位置指針 276
4.9.8  狀態(tài)標(biāo)志符的驗(yàn)證 278
4.9.9  讀寫文件數(shù)據(jù)塊 279
4.10  文件編程中的其他操作 281
4.10.1  獲取文件有關(guān)信息 281
4.10.2  創(chuàng)建和刪除文件目錄項(xiàng) 283
第5章  多進(jìn)程編程 286
5.1  進(jìn)程的基本概念 286
5.2  進(jìn)程的描述 287
5.2.1  進(jìn)程的標(biāo)識符 289
5.2.2  PID文件 291
5.3  進(jìn)程的創(chuàng)建 294
5.3.1  使用fork創(chuàng)建進(jìn)程 294
5.3.2  使用exec創(chuàng)建進(jìn)程 295
5.3.3  使用system創(chuàng)建進(jìn)程 301
5.4  進(jìn)程調(diào)度 302
5.5  進(jìn)程的分類 305
5.5.1  前臺進(jìn)程 305
5.5.2  后臺進(jìn)程 305
5.6  守護(hù)進(jìn)程 306
5.6.1  守護(hù)進(jìn)程的概念 306
5.6.2  守護(hù)進(jìn)程的特點(diǎn) 307
5.6.3  查看守護(hù)進(jìn)程 307
5.6.4  守護(hù)進(jìn)程的分類 308
5.6.5  守護(hù)進(jìn)程的常用啟動(dòng)方式 309
5.6.6  編寫守護(hù)進(jìn)程的步驟 309
第6章  Linux進(jìn)程間的通信 312
6.1  信號 312
6.1.1  信號的基本概念 312
6.1.2  與信號相關(guān)的系統(tǒng)調(diào)用 317
6.2  管道 325
6.2.1  管道的基本概念 325
6.2.2  管道讀寫的特點(diǎn) 325
6.2.3  管道的局限性 326
6.2.4  創(chuàng)建管道函數(shù)pipe 326
6.2.5  讀寫管道函數(shù)read/write 326
6.2.6  等待子進(jìn)程中斷或結(jié)束的函數(shù)wait 327
6.2.7  使用管道的特殊情況 330
6.3  消息隊(duì)列 330
6.3.1  創(chuàng)建和打開消息隊(duì)列函數(shù)msgget 331
6.3.2  獲取和設(shè)置消息隊(duì)列的屬性函數(shù)msgctl 332
6.3.3  將消息送入消息隊(duì)列的函數(shù)msgsnd 333
6.3.4  從消息隊(duì)列中讀取一條新消息的函數(shù)msgrcv 333
6.3.5  生成鍵值函數(shù)ftok 334
第7章  C Web編程 342
7.1  CGI程序的工作方式 342
7.2  架設(shè)Web服務(wù)器Apache 343
第8章  多線程基本編程 346
8.1  使用多線程的好處 346
8.2  多線程編程的基本概念 347
8.2.1  操作系統(tǒng)和多線程 347
8.2.2  線程的基本概念 348
8.2.3  線程的狀態(tài) 348
8.2.4  線程函數(shù) 349
8.2.5  線程標(biāo)識 349
8.2.6  C 多線程開發(fā)的兩種方式 349
8.3  利用POSIX多線程API函數(shù)進(jìn)行多線程開發(fā) 350
8.3.1  線程的創(chuàng)建 350
8.3.2  線程的屬性 355
8.3.3  線程的結(jié)束 366
8.3.4  線程退出時(shí)的清理機(jī)會 374
8.4  C 11中的線程類 379
8.4.1  線程的創(chuàng)建 380
8.4.2  線程的標(biāo)識符 387
8.4.3  當(dāng)前線程this_thread 388
第9章  多線程高級編程 393
9.1  多線程的同步和異步 393
9.2  線程同步 393
9.3  利用POSIX多線程API函數(shù)進(jìn)行線程同步 398
9.3.1  互斥鎖 398
9.3.2  讀寫鎖 404
9.3.3  條件變量 411
9.4  C 11/14中的線程同步 417
9.5  線程池 421
9.5.1  線程池的定義 421
9.5.2  使用線程池的原因 421
9.5.3  用C 實(shí)現(xiàn)一個(gè)簡單的線程池 422
第10章  Linux下的庫 428
10.1  庫的基本概念 428
10.2  庫的分類 428
10.3  靜態(tài)庫 429
10.3.1  靜態(tài)庫的基本概念 429
10.3.2  靜態(tài)庫的創(chuàng)建和使用 429
10.4  動(dòng)態(tài)庫 432
10.4.1  動(dòng)態(tài)庫的基本概念 432
10.4.2  動(dòng)態(tài)庫的創(chuàng)建和使用 432
第11章  TCP/IP基礎(chǔ) 437
11.1  什么是TCP/IP 437
11.2  TCP/IP的分層結(jié)構(gòu) 437
11.3  應(yīng)用層 441
11.3.1  DNS 441
11.3.2  端口的概念 442
11.4  傳輸層 442
11.4.1  TCP 442
11.4.2  UDP 443
11.5  網(wǎng)絡(luò)層 443
11.5.1  IP 443
11.5.2  ARP 449
11.5.3  RARP 451
11.5.4  ICMP 452
11.6  數(shù)據(jù)鏈路層 459
11.6.1  數(shù)據(jù)鏈路層的基本概念 459
11.6.2  數(shù)據(jù)鏈路層的主要功能 460
第12章  套接字基礎(chǔ) 462
12.1  網(wǎng)絡(luò)程序的架構(gòu) 463
12.2  套接字的類型 464
12.3  套接字的地址結(jié)構(gòu) 464
12.4  主機(jī)字節(jié)序和網(wǎng)絡(luò)字節(jié)序 465
12.5  出錯(cuò)信息的獲取 467
第13章  TCP套接字編程 469
13.1  TCP套接字編程的基本步驟 469
13.2  協(xié)議簇和地址簇 470
13.3  socket地址 473
13.3.1  通用socket地址 473
13.3.2  專用socket地址 474
13.3.3  IP地址的轉(zhuǎn)換 475
13.4  TCP套接字編程的相關(guān)函數(shù) 477
13.4.1  socket函數(shù) 477
13.4.2  bind函數(shù) 477
13.4.3  listen函數(shù) 480
13.4.4  accept函數(shù) 480
13.4.5  connect函數(shù) 480
13.4.6  write函數(shù) 483
13.4.7  read函數(shù) 484
13.4.8  send函數(shù) 484
13.4.9  recv函數(shù) 484
13.4.10  close函數(shù) 485
13.4.11  獲得套接字地址 485
13.4.12  獲得主機(jī)名稱和主機(jī)信息 487
13.4.13  阻塞套接字的使用 489
13.4.14  非阻塞套接字的使用 496
第14章  UDP套接字編程 509
14.1  UDP套接字編程的基本步驟 509
14.2  UDP套接字編程的相關(guān)函數(shù) 510
14.2.1  消息發(fā)送函數(shù)sendto和sendmsg 510
14.2.2  消息接收函數(shù)recvfrom和recvmsg 512
14.3  實(shí)戰(zhàn)UDP套接字 513
14.4  UDP丟包及無序問題 522
第15章  原始套接字編程 523
15.1  原始套接字概述 523
15.2  與標(biāo)準(zhǔn)套接字的區(qū)別 523
15.3  原始套接字的編程方法 524
15.4  面向鏈路層的原始套接字編程函數(shù) 524
15.4.1  創(chuàng)建原始套接字函數(shù)socket 524
15.4.2  接收函數(shù)recvfrom 525
15.4.3  發(fā)送函數(shù)sendto 526
15.5  以太網(wǎng)幀格式 529
15.6  獲取網(wǎng)絡(luò)接口的信息 530
15.7  實(shí)戰(zhàn)鏈路層的原始套接字 534
15.7.1  常見的應(yīng)用場景 534
15.7.2  混雜模式 560
15.7.3  鏈路層原始套接字開發(fā)注意事項(xiàng) 579
15.8  面向IP層的原始套接字編程 580
第16章  并發(fā)聊天服務(wù)器項(xiàng)目實(shí)戰(zhàn) 588
16.1  系統(tǒng)平臺的選擇 588
16.1.1  應(yīng)用系統(tǒng)平臺模式的選擇 588
16.1.2  C/S模式介紹 589
16.1.3  數(shù)據(jù)庫系統(tǒng)的選擇 590
16.2  系統(tǒng)需求分析 590
16.2.1  即時(shí)消息的一般需求 590
16.2.2  即時(shí)消息的協(xié)議需求 590
16.2.3  即時(shí)消息的安全需求 591
16.2.4  即時(shí)消息的加密和鑒別 591
16.2.5  即時(shí)消息的注冊需求 591
16.2.6  即時(shí)消息的通信需求 591
16.3  系統(tǒng)總體設(shè)計(jì) 591
16.4  即時(shí)通信系統(tǒng)的實(shí)施原理 592
16.4.1  IM的工作方式 593
16.4.2  IM的基本技術(shù)原理 593
16.4.3  IM的通信方式 593
16.5  功能模塊劃分 594
16.5.1  模塊劃分 594
16.5.2  服務(wù)器端功能 595
16.5.3  客戶端功能 595
16.5.4  服務(wù)器端多線程 595
16.5.5  客戶端多線程 596
16.6  數(shù)據(jù)庫設(shè)計(jì) 596
16.6.1  數(shù)據(jù)庫的選擇 596
16.6.2  準(zhǔn)備MySQL環(huán)境 597
16.6.3  Linux下的MySQL的C編程 601
16.6.4  聊天系統(tǒng)數(shù)據(jù)庫設(shè)計(jì) 607
16.7  服務(wù)器端設(shè)計(jì) 608
16.8  客戶端設(shè)計(jì) 616

本目錄推薦

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