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

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

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

定 價:¥159.00

作 者: 朱文偉 李建英
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


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

內容簡介

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

作者簡介

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

圖書目錄

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

本目錄推薦

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