-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Linux C與C++ 一線開發實踐

( 簡體 字)
作者:朱文偉 李建英類別:1. -> 作業系統 -> Linux
   2. -> 程式設計 -> C -> C
   3. -> 程式設計 -> C++ -> C++
譯者:
出版社:清華大學出版社Linux C與C++ 一線開發實踐 3dWoo書號: 50364
詢問書籍請說出此書號!

缺書
NT售價: 645

出版日:12/1/2018
頁數:692
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302512554
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

這是一本Linux C/C++入門的經典圖書。任何學過C/C++語言并立志成為一名Linux開發工程師的朋友,都可以從本書起步。本書雖然有點厚,但內容通俗易懂,由淺入深,并且實例豐富、步驟詳細、注釋充分,相信大家都能看得懂。對于中高級開發人員,也可以通過本書快速上手Linux C/C++的實際開發。本書并沒有詳細講述C++語言部分(但也進行了一定程度的敘述),而是把更多的筆墨放在Linux編程方面,因此書中都是實實在在的Linux編程“干貨”。此外,實例豐富是本書的一大特點,大家應該知道,編程開發只是了解理論是不夠的,只有自己上機調試運行實例,才能深刻理解編程,尤其是C/C++。另外,為了照顧初學者,每個實例步驟都非常詳細,并且從建立工程到運行工程都有著豐富的注釋。最后,本書所有例子都在CentOS 7上用gcc/g++編譯通過。
本書在講述基本編程的同時,也講述了很多一線實踐開發中經常會碰到的問題和解決方案,可以說本書是緊貼工業界的圖書。希望大家能夠通過本書的學習打好Linux開發的基礎,早日成為Linux C/C++開發高手。

本書示例源代碼下載

本書示例源代碼下載鏈接請掃描下面的右邊二維碼獲得:

如果下載有問題,請聯系,郵件主題為“Linux C與C++一線開發實踐”。

技術支持與鳴謝
雖然編者盡了最大努力,但是書中難免會出現一些疏漏,希望大家不吝指正。,。編者的QQ技術支持郵箱,歡迎大家來信。,關于本書的最新動態和錯誤列表,可以關注作者的QQ空間,讀者反映的建議或書中的疏漏會更新到空間中。
這里要最后感謝夫人李建英,沒有她認真測試驗證實示例程序就不能順利完成本書的寫作。同時也感謝清華大學出版社的老師們,他們辛勤的工作使得會有本書得以的順利出版。

編 者
2018年811月
內容簡介:

Linux C/C++編程在Linux應用程序開發中占有重要的地位,掌握這項技能將在就業競爭中立于不敗之地。本書是一本針對初、中級讀者的、貼近軟件公司一線開發實踐的書。
本書共分為19章,內容包括Linux概述、搭建開發環境、語言基礎、文件編程、多進程編程、進程間通信、Web編程、多線程編程、Linux下的庫、TCP/IP協議基礎、網絡編程、網絡性能測試工具iPerf簡析、版本控制和SVN工具、C++跨平臺開發以及安全編程等。
本書適合想全面學習Linux環境下C/C++語言編程的讀者,并可作為初中級開發人員的案頭查閱與參考手冊,也適合作為高等院校和培訓學校相關專業師生的教學參考書。
目錄:

第1章Linux概述1
1.1什么是Linux1
1.2Linux的簡史2
1.3Linux和Windows的比較4
1.4Linux主要應用領域4
1.5Linux的版本5
1.6使用哪個版本的Linux進行學習5
1.7Linux的特點5
1.8如何學習Linux6
1.9命令行還是圖形界面6
1.10計算機啟動的基本過程6
1.10.1按下電源7
第1章Linux概述1
1.1什么是Linux1
1.2Linux的簡史2
1.3Linux和Windows的比較4
1.4Linux主要應用領域4
1.5Linux的版本5
1.6使用哪個版本的Linux進行學習5
1.7Linux的特點5
1.8如何學習Linux6
1.9命令行還是圖形界面6
1.10計算機啟動的基本過程6
1.10.1按下電源7
1.10.2BIOS自檢7
1.10.3系統引導8
1.10.4實模式和保護模式10
1.11啟動內核11
1.12認識Shell11
1.13常見的Shell11
1.14圖形界面和字符界面的切換12
1.14.1在不退出X-Window的情況下切換到字符界面12
1.14.2強行退出X-Window進入文本模式12
1.14.3設置每次開機進入字符界面13
1.14.4從字符界面進入圖形界面14
1.15Shell命令概述14
1.16環境變量14
第2章搭建LinuxC++開發環境16
2.1準備Linux虛擬機16
2.2連接Linux虛擬機20
2.2.1通過橋接模式連接虛擬機21
2.2.2主機模式24
2.2.3通過NAT模式連接虛擬機25
2.3通過終端工具連接Linux虛擬機27
2.4搭建Linux下的C++開發環境30
2.4.1非集成開發方式30
2.4.2集成開發方式31
2.5搭建Windows下的LinuxC++開發環境37
2.5.1搭建非集成式的Windows下的LinuxC++開發環境37
2.5.2搭建集成式的Windows下的LinuxC++開發環境39
2.6需要掌握的開發工具49
2.7vi編輯器的使用50
2.7.1vi編輯器概述50
2.7.2vi編輯器的工作模式50
2.7.3vi的基本操作51
2.7.4命令行模式下的基本操作51
2.7.5插入模式55
2.7.6末行模式操作55
2.8gcc編譯器的使用57
2.8.1gcc對C語言的編譯過程57
2.8.2gcc所支持的后綴名文件62
2.8.3gcc的語法格式62
2.8.4gcc常見選項64
2.9g++的基本使用75
2.10gdb調試器的使用77
2.10.1為何要學習gdb調試器77
2.10.2gdb簡介77
2.10.3重要準備77
2.10.4啟動gdb77
2.10.5退出gdb78
2.10.6gdb的常用命令概述79
2.10.7file命令加載程序80
2.10.8list命令顯示源代碼80
2.10.9run命令運行程序83
2.10.10break命令設置斷點85
第3章C++語言基礎89
3.1C++基礎知識89
3.1.1C++程序結構89
3.1.2注釋91
3.1.3變量和數據類型92
3.1.4標識92
3.1.5基本數據類型93
3.1.6變量的定義和C++11中的auto94
3.1.7變量的范圍98
3.1.8變量初始化98
3.1.9常量99
3.1.10操作符/運算符103
3.1.11控制臺交互110
3.2控制結構115
3.2.1條件結構115
3.2.2循環結構116
3.2.3分支控制和跳轉120
3.2.4選擇結構語句switch122
3.3函數123
3.4函數高級話題127
3.4.1參數按數值傳遞和按地址傳遞127
3.4.2函數重載130
3.4.3內聯函數131
3.4.4遞歸132
3.4.5函數的聲明133
3.5高級數據類型134
3.5.1數組134
3.5.2指針145
3.5.3動態分配內存155
3.5.4結構體159
3.5.5自定義數據類型165
3.6面向對象編程168
3.6.1類168
3.6.2構造函數和析構函數171
3.6.3構造函數重載173
3.6.4類的指針175
3.6.5由關鍵字struct和union定義的類176
3.6.6操作符重載176
3.6.7關鍵字this179
3.6.8靜態成員180
3.6.9類之間的關系182
3.6.10多態189
3.7C++面向對象小結195
3.8C++高級知識199
3.8.1模板199
3.8.2命名空間205
3.8.3異常處理209
3.8.4預處理指令213
3.8.5預定義宏215
3.8.6C++11中的預定義宏216
3.9字符串218
3.9.1字符串基礎218
3.9.2搜索與查找227
3.10再論異常處理233
3.10.1基本概念233
3.10.2拋出異常234
3.10.3捕獲異常234
3.10.4C++標準異常235
3.10.5定義新的異常236
3.11再論函數模板237
3.12字符集239
3.12.1計算機上的3種字符集239
3.12.2查看Linux系統的字符集241
3.12.3修改Linux系統的字符集242
3.12.4Unicode編碼的實現242
3.12.5C運行時庫對Unicode的支持246
3.12.6C++標準庫對Unicode的支持247
3.12.7字符集相關實例248
第4章Linux文件編程249
4.1文件系統249
4.1.1基本概念249
4.1.2文件系統層次結構標準249
4.2文件的屬性信息250
4.3i節點251
4.3.1基本概念251
4.3.2i節點的內容251
4.3.3i節點的使用狀況253
4.4文件類型254
4.4.1普通文件255
4.4.2目錄255
4.4.3塊設備文件256
4.4.4字符設備文件257
4.4.5鏈接文件257
4.5文件權限259
4.6Linux文件I/O編程的基本方式260
4.7什么是I/O260
4.8Linux系統調用下的文件I/O編程261
4.8.1文件描述符261
4.8.2打開或創建文件262
4.8.3創建文件263
4.8.4關閉文件264
4.8.5讀取文件中的數據266
4.8.6向文件寫入數據268
4.8.7設定文件偏移量269
4.8.8獲取文件狀態271
4.8.9文件鎖定272
4.8.10建立文件和內存映射276
4.8.11mmap和共享內存對比279
4.9C++方式下的文件I/O編程280
4.9.1流的概念280
4.9.2流的類庫280
4.9.3打開文件281
4.9.4關閉文件283
4.9.5寫入文件283
4.9.6讀取文件283
4.9.7文件位置指針285
4.9.8狀態標志符的驗證287
4.9.9讀寫文件數據塊288
4.10文件編程中的其他操作290
4.10.1獲取文件有關信息290
4.10.2創建和刪除文件目錄項293
第5章多進程編程296
5.1進程的基本概念296
5.2進程的描述296
5.2.1進程的標識符299
5.2.2PID文件301
5.3進程的創建303
5.3.1使用fork創建進程303
5.3.2使用exec創建進程305
5.3.3使用system創建進程311
5.4進程調度312
5.5進程的分類315
5.5.1前臺進程315
5.5.2后臺進程315
5.6守護進程316
5.6.1守護進程的概念316
5.6.2守護進程的特點317
5.6.3查看守護進程317
5.6.4守護進程的分類318
5.6.5守護進程的啟動方式319
5.6.6編寫守護進程的步驟319
第6章Linux進程間的通信323
6.1信號323
6.1.1信號的基本概念323
6.1.2與信號相關的系統調用328
6.2管道336
6.2.1管道的基本概念336
6.2.2管道讀寫的特點337
6.2.3管道的局限性337
6.2.4創建管道函數pipe338
6.2.5讀寫管道函數read/write338
6.2.6等待子進程中斷或結束的函數wait338
6.2.7使用管道的特殊情況342
6.3消息隊列342
6.3.1創建和打開消息隊列函數msgget343
6.3.2獲取和設置消息隊列的屬性函數msgctl343
6.3.3將消息送入消息隊列的函數msgsnd344
6.3.4從消息隊列中讀取一條新消息的函數msgrcv345
6.3.5生成鍵值函數ftok346
第7章C++Web編程354
7.1CGI程序的工作方式354
7.2架設Web服務器Apache354
第8章多線程基本編程358
8.1使用多線程的好處358
8.2多線程編程的基本概念359
8.2.1操作系統和多線程359
8.2.2線程的基本概念359
8.2.3線程的狀態360
8.2.4線程函數361
8.2.5線程標識361
8.2.6C++多線程開發的兩種方式361
8.3利用POSIX多線程API函數進行多線程開發362
8.3.1線程的創建362
8.3.2線程的屬性367
8.3.3線程的結束379
8.3.4線程退出時的清理機會387
8.4C++11中的線程類392
8.4.1線程的創建393
8.4.2線程的標識符401
8.4.3當前線程this_thread402
第9章多線程高級編程406
9.1多線程的同步和異步406
9.2線程同步406
9.3利用POSIX多線程API函數進行線程同步411
9.3.1互斥鎖411
9.3.2讀寫鎖417
9.3.3條件變量424
9.4C++11/14中的線程同步431
9.5線程池434
9.5.1線程池的定義434
9.5.2使用線程池的原因435
9.5.3用C++實現一個簡單的線程池435
第10章Linux下的庫441
10.1庫的基本概念441
10.2庫的分類441
10.3靜態庫442
10.3.1靜態庫的基本概念442
10.3.2靜態庫的創建和使用442
10.4動態庫445
10.4.1動態庫的基本概念445
10.4.2動態庫的創建和使用445
第11章TCP/IP協議基礎450
11.1什么是TCP/IP450
11.2TCP/IP協議的分層結構450
11.3應用層453
11.3.1DNS454
11.3.2端口的概念454
11.4傳輸層455
11.4.1TCP協議455
11.4.2UDP協議456
11.5網絡層456
11.5.1IP協議456
11.5.2ARP協議462
11.5.3RARP協議464
11.5.4ICMP協議465
11.6數據鏈路層474
11.6.1數據鏈路層的基本概念474
11.6.2數據鏈路層的主要功能474
第12章套接字基礎476
12.1網絡程序的架構477
12.2套接字的類型478
12.3套接字的地址結構478
12.4主機字節序和網絡字節序479
12.5出錯信息的獲取481
第13章TCP套接字編程483
13.1TCP套接字編程的基本步驟483
13.2協議簇和地址簇484
13.3socket地址487
13.3.1通用socket地址487
13.3.2專用socket地址488
13.3.3IP地址的轉換489
13.4TCP套接字編程的相關函數491
13.4.1socket函數491
13.4.2bind函數492
13.4.3listen函數494
13.4.4accept函數494
13.4.5connect函數495
13.4.6write函數497
13.4.7read函數498
13.4.8send函數498
13.4.9recv函數499
13.4.10close函數499
13.4.11獲得套接字地址499
13.4.12阻塞套接字的使用504
13.4.13非阻塞套接字的使用511
第14章UDP套接字編程525
14.1UDP套接字編程的基本步驟525
14.2TCP套接字編程的相關函數526
14.2.1消息發送函數sendto和sendmsg526
14.2.2消息接收函數recvfrom和recvmsg527
14.3實戰UDP套接字529
14.4UDP丟包及無序問題538
第15章原始套接字編程539
15.1原始套接字概述539
15.2與標準套接字的區別539
15.3原始套接字的編程方法540
15.4面向鏈路層的原始套接字編程函數540
15.4.1創建原始套接字函數540
15.4.2接收函數recvfrom541
15.4.3發送函數sendto542
15.5以太網幀格式545
15.6獲取網絡接口的信息547
15.7實戰鏈路層的原始套接字550
15.7.1常見的應用場景550
15.7.2混雜模式577
15.7.3鏈路層原始套接字開發注意事項596
15.8面向IP層的原始套接字編程597
第16章C++網絡性能測試工具iPerf的簡析605
16.1iPerf概述605
16.2iPerf的特點605
16.3iPerf的工作原理605
16.4iPerf的主要功能606
16.5在Linux下安裝iPerf607
16.6iPerf的簡單使用608
16.7iPerf源代碼概述609
16.8Thread類610
16.8.1數據成員說明611
16.8.2主要函數成員611
16.9SocketAddr類615
16.10Socket類617
16.10.1Listen函數618
16.10.2Accept函數620
16.10.3Connect函數620
第17章版本控制和SVN工具623
17.1SVN簡介623
17.1.1什么是SVN623
17.1.2使用SVN的好處624
17.1.3使用SVN的基本流程624
17.2SVN服務器的安裝和配置624
17.2.1VisualSVN服務器的安裝和配置624
17.2.2SVN客戶端在Windows上的使用629
第18章C++跨平臺開發634
18.1什么是跨平臺634
18.2C++的可移植性634
18.2.1可移植性的概念634
18.2.2影響C++語言可移植性的因素635
18.3設計跨平臺軟件的原則638
18.3.1避免語言的擴展特性638
18.3.2實現動態的處理638
18.3.3使用腳本文件進行管理639
18.3.4使用安全的數據串行化640
18.3.5跨平臺開發中的編譯及測試641
18.3.6實現抽象641
18.4建立跨平臺的開發環境642
18.4.1跨平臺開發編譯器的選擇642
18.4.2建立跨平臺的Make系統643
18.5C++語言跨平臺軟件開發的實現648
18.6C++語言跨平臺的開發策略649
18.7建立統一的工程包650
18.8建立跨平臺的代碼庫650
18.9工廠模式與單例模式的實現651
18.10利用平臺依賴庫封裝平臺相關代碼651
18.11處理器的差異控制652
18.11.1內存對齊652
18.11.2字節順序653
18.11.3類型的大小654
18.11.4使用預編譯處理類型差異654
18.12編譯器的差異控制655
18.12.1實現平臺無關的代碼655
18.12.2內存管理657
18.12.3容錯性的影響657
18.12.4利用日志管理異常657
18.13操作系統和接口庫658
18.13.1文件描述符的限制659
18.13.2進程和線程的限制659
18.13.3操作系統抽象層659
18.14用戶界面660
18.14.1跨平臺軟件圖形界面的設計660
18.14.2wxWidgets簡介661
18.14.3使用wxWidgets開發跨平臺軟件的界面661
第19章Linux下的安全編程663
19.1本章概述663
19.2密碼學基礎知識665
19.2.1密碼學概述665
19.2.2對稱密鑰加密技術665
19.2.3公開密鑰加密技術666
19.2.4單向散列函數算法667
19.2.5數字簽名基礎知識667
19.3身份認證基礎知識668
19.3.1身份認證概述668
19.3.2身份認證的方式669
19.4密碼編程的兩個重要庫670
19.5OpenSSL的簡介671
19.6OpenSSL模塊分析671
19.6.1OpenSSL源代碼模塊結構671
19.6.2OpenSSL加密庫調用方式672
19.6.3OpenSSL支持的對稱加密算法673
19.6.4OpenSSL支持的非對稱加密算法673
19.6.5OpenSSL支持的信息摘要算法673
19.6.6OpenSSL密鑰和證書管理673
19.7面向對象與OpenSSL674
19.7.1BIO接口675
19.7.2EVP接口676
19.8OpenSSL的下載、編譯和升級安裝677
19.9對稱加解密算法的分類680
19.9.1流對稱算法680
19.9.2分組對稱算法680
19.9.3了解庫和頭文件684
19.10利用OpenSSL進行對稱加解密686
19.10.1一些基本概念686
19.10.2對稱加解密相關函數687
19.11Crypto++的簡介695
19.12Crypto++的編譯696
19.13Crypto++進行AES加解密696
序: