linuxC推薦
① 求推薦linux c函數實現的書。。。。
Windows網路與通信程序設計(第2版) 王艷平 這本書寫的非常好,我有本王艷平寫的 windows程序設計,寫得很好,我自己不做網路開發,就沒有買網路的那本書!不過推薦你看看,真的很不錯!
本書將編程方法、網路協議和應用實例有機結合起來,詳細闡明Windows網路編程的各方面內容。本書首先介紹Windows平台上進行網路編程的基礎知識,包括網路硬體、術語、協議、Winsock編程介面和各種I/O方法等;然後通過具體實例詳細講述當前流行的高性能可伸縮伺服器設計、IP多播和Internet廣播、P2P程序設計、原始套接字、SPI、協議驅動的開發和原始以太數據的發送、ARP欺騙技術、LAN和WAN上的掃描和偵測技術、個人防火牆與網路封包截獲技術等;最後講述IP幫助函數和E-mail的開發方法。 本書結構緊湊,內容由淺入...
第1章 計算機網路基礎 1
1.1 網路的概念和網路的組成 1
1.2 計算機網路參考模型 2
1.2.1 協議層次 2
1.2.2 TCP/IP參考模型 2
1.2.3 應用層(Application Layer) 3
1.2.4 傳輸層(Transport Layer) 3
1.2.5 網路層(Network Layer) 3
1.2.6 鏈路層(Link Layer) 4
1.2.7 物理層(Physical Layer) 4
1.3 網路程序定址方式 4
1.3.1 MAC地址 4
1.3.2 IP地址 5
1.3.3 子網定址 6
1.3.4 埠號 8
1.3.5 網路地址轉換(NAT) 8
1.4 網路應用程序設計基礎 10
1.4.1 網路程序體系結構 10
1.4.2 網路程序通信實體 11
1.4.3 網路程序開發環境 12
第2章 Winsock編程介面 13
2.1 Winsock庫 13
2.1.1 Winsock庫的裝入和釋放 13
2.1.2 封裝CInitSock類 14
2.2 Winsock的定址方式和位元組順序 14
2.2.1 Winsock定址 14
2.2.2 位元組順序 16
2.2.3 獲取地址信息 17
2.3 Winsock編程詳解 20
2.3.1 Winsock編程流程 20
2.3.2 典型過程圖 23
2.3.3 TCP伺服器和客戶端程序舉例 24
2.3.4 UDP編程 26
2.4 網路對時程序實例 28
2.4.1 時間協議(Time Protocol) 28
2.4.2 TCP/IP實現代碼 29
第3章 Windows套接字I/O模型 31
3.1 套接字模式 31
3.1.1 阻塞模式 31
3.1.2 非阻塞模式 31
3.2 選擇(select)模型 32
3.2.1 select函數 32
3.2.2 應用舉例 33
3.3 WSAAsyncSelect模型 36
3.3.1 消息通知和WSAAsyncSelect函數 36
3.3.2 應用舉例 37
3.4 WSAEventSelect模型 40
3.4.1 WSAEventSelect函數 40
3.4.2 應用舉例 42
3.4.3 基於WSAEventSelect模型的伺服器設計 44
3.5 重疊(Overlapped)I/O模型 53
3.5.1 重疊I/O函數 53
3.5.2 事件通知方式 56
3.5.3 基於重疊I/O模型的伺服器設計 56
第4章 IOCP與可伸縮網路程序 67
4.1 完成埠I/O模型 67
4.1.1 什麼是完成埠(completion port)對象 67
4.1.2 使用IOCP的方法 67
4.1.3 示常式序 69
4.1.4 恰當地關閉IOCP 72
4.2 Microsoft擴展函數 72
4.2.1 GetAcceptExSockaddrs函數 73
4.2.2 TransmitFile函數 73
4.2.3 TransmitPackets函數 74
4.2.4 ConnectEx函數 75
4.2.5 DisconnectEx函數 76
4.3 可伸縮伺服器設計注意事項 76
4.3.1 內存資源管理 76
4.3.2 接受連接的方法 77
4.3.3 惡意客戶連接問題 77
4.3.4 包重新排序問題 78
4.4 可伸縮伺服器系統設計實例 78
4.4.1 CIOCPServer類的總體結構 78
4.4.2 數據結構定義和內存池方案 82
4.4.3 自定義幫助函數 85
4.4.4 開啟服務和停止服務 88
4.4.5 I/O處理線程 93
4.4.6 用戶介面和測試程序 99
第5章 互聯網廣播和IP多播 100
5.1 套接字選項和I/O控制命令 100
5.1.1 套接字選項 100
5.1.2 I/O控制命令 102
5.2 廣播通信 103
5.3 IP多播(Multicasting) 105
5.3.1 多播地址 105
5.3.2 組管理協議(IGMP) 105
5.3.3 使用IP多播 106
5.4 基於IP多播的組討論會實例 110
5.4.1 定義組討論會協議 110
5.4.2 線程通信機制 111
5.4.3 封裝CGroupTalk類 111
5.4.4 程序界面 117
第6章 原始套接字 121
6.1 使用原始套接字 121
6.2 ICMP編程 121
6.2.1 ICMP與校驗和的計算 121
6.2.2 Ping程序實例 124
6.2.3 路由跟蹤 126
6.3 使用IP頭包含選項 129
6.3.1 IP數據報格式 129
6.3.2 UDP數據報格式 131
6.3.3 原始UDP封包發送實例 133
6.4 網路嗅探器開發實例 134
6.4.1 嗅探器設計原理 135
6.4.2 網路嗅探器的具體實現 136
6.4.3 偵聽區域網內的密碼 138
6.5 TCP通信開發實例 140
6.5.1 創建一個原始套接字,並設置IP頭選項 140
6.5.2 構造IP頭和TCP頭 140
6.5.3 發送原始套接字數據報 142
6.5.4 接收數據 146
第7章 Winsock服務提供者介面(SPI) 147
7.1 SPI概述 147
7.2 Winsock協議目錄 148
7.2.1 協議特性 149
7.2.2 使用Winsock API函數枚舉協議 150
7.2.3 使用Winsock SPI函數枚舉協議 151
7.3 分層服務提供者(LSP) 153
7.3.1 運行原理 153
7.3.2 安裝LSP 154
7.3.3 移除LSP 158
7.3.4 編寫LSP 159
7.3.5 LSP實例 161
7.4 基於SPI的數據報過濾實例 165
7.5 基於Winsock的網路聊天室開發 171
7.5.1 服務端 171
7.5.2 客戶端 171
7.5.3 聊天室程序的設計說明 172
7.5.4 核心代碼分析 172
第8章 Windows網路驅動介面標准(NDIS)和協議驅動的開發 176
8.1 核心層網路驅動 176
8.1.1 Windows 2000及其後產品的網路體系結構 176
8.1.2 NDIS網路驅動程序 177
8.1.3 網路驅動開發環境 178
8.2 WDM驅動開發基礎 181
8.2.1 UNICODE字元串 181
8.2.2 設備對象 181
8.2.3 驅動程序的基本結構 183
8.2.4 I/O請求包(I/O request packet,IRP)和I/O堆棧 183
8.2.5 完整驅動程序示例 186
8.2.6 擴展派遣介面 188
8.2.7 應用舉例(進程診測實例) 191
8.3 開發NDIS網路驅動預備知識 198
8.3.1 中斷請求級別(Interrupt Request Level,IRQL) 198
8.3.2 旋轉鎖(Spin Lock) 198
8.3.3 雙鏈表 199
8.3.4 封包結構 199
8.4 NDIS協議驅動 200
8.4.1 注冊協議驅動 200
8.4.2 打開下層協議驅動的適配器 201
8.4.3 協議驅動的封包管理 202
8.4.4 在協議驅動中接收數據 203
8.4.5 從協議驅動發送封包 204
8.5 NDIS協議驅動開發實例 204
8.5.1 總體設計 204
8.5.2 NDIS協議驅動的初始化、注冊和卸載 206
8.5.3 下層NIC的綁定和解除綁定 209
8.5.4 發送數據 217
8.5.5 接收數據 219
8.5.6 用戶IOCTL處理 225
第9章 網路掃描與檢測技術 233
9.1 網路掃描基礎知識 233
9.1.1 乙太網數據幀 233
9.1.2 ARP 234
9.1.3 ARP格式 236
9.1.4 SendARP函數 237
9.2 原始以太封包的發送 238
9.2.1 安裝協議驅動 238
9.2.2 協議驅動用戶介面 238
9.2.3 發送以太封包的測試程序 244
9.3 區域網計算機掃描 245
9.3.1 管理原始ARP封包 246
9.3.2 ARP掃描示例 249
9.4 互聯網計算機掃描 253
9.4.1 埠掃描原理 253
9.4.2 半開埠掃描實現 254
9.5 ARP欺騙原理與實現 259
9.5.1 IP欺騙的用途和實現原理 259
9.5.2 IP地址沖突 260
9.5.3 ARP欺騙示例 261
第10章 點對點(P2P)網路通信技術 264
10.1 P2P穿越概述 264
10.2 一般概念 265
10.2.1 NAT術語 265
10.2.2 中轉 265
10.2.3 反向連接 266
10.3 UDP打洞 267
10.3.1 中心伺服器 267
10.3.2 建立點對點會話 267
10.3.3 公共NAT後面的節點 267
10.3.4 不同NAT後面的節點 268
10.3.5 多級NAT後面的節點 269
10.3.6 UDP空閑超時 270
10.4 TCP打洞 271
10.4.1 套接字和TCP埠重用 271
10.4.2 打開點對點的TCP流 271
10.4.3 應用程序看到的行為 272
10.4.4 同步TCP打開 273
10.5 Internet點對點通信實例 273
10.5.1 總體設計 273
10.5.2 定義P2P通信協議 274
10.5.3 客戶方程序 275
10.5.4 伺服器方程序 287
10.5.5 測試程序 291
第11章 核心層網路封包截獲技術 294
11.1 Windows網路數據和封包過濾概述 294
11.1.1 Windows網路系統體系結構圖 294
11.1.2 用戶模式下的網路數據過濾 295
11.1.3 內核模式下的網路數據過濾 296
11.2 中間層網路驅動PassThru 296
11.2.1 PassThru NDIS中間層驅動簡介 296
11.2.2 編譯和安裝PassThru驅動 297
11.3 擴展PassThru NDIS IM驅動——添加IOCTL介面 297
11.3.1 擴展之後的PassThru驅動(PassThruEx)概況 297
11.3.2 添加基本的DeviceIoControl介面 298
11.3.3 添加綁定枚舉功能 302
11.3.4 添加ADAPT結構的引用計數 307
11.3.5 適配器句柄的打開/關閉函數 308
11.3.6 句柄事件通知 315
11.3.7 查詢和設置適配器的OID信息 315
11.4 擴展PassThru NDIS IM驅動——添加過濾規則 323
11.4.1 需要考慮的事項 323
11.4.2 過濾相關的數據結構 324
11.4.3 過濾列表 326
11.4.4 網路活動狀態 327
11.4.5 IOCTL控制代碼 328
11.4.6 過濾數據 331
11.5 核心層過濾實例 339
第12章 Windows網路防火牆開發技術 342
12.1 防火牆技術概述 342
12.2 金羽(Phoenix)個人防火牆淺析 343
12.2.1 金羽(Phoenix)個人防火牆簡介 343
12.2.2 金羽(Phoenix)個人防火牆總體設計 344
12.2.3 金羽(Phoenix)個人防火牆總體結構 345
12.3 開發前的准備 345
12.3.1 常量的定義 346
12.3.2 訪問規則 348
12.3.3 會話結構 348
12.3.4 文件結構 349
12.3.5 UNICODE支持 355
12.4 應用層DLL模塊 356
12.4.1 DLL工程框架 356
12.4.2 共享數據和IO控制 362
12.4.3 訪問控制列表ACL(Access List) 364
12.4.4 查找應用程序訪問許可權的過程 367
12.4.5 類的介面——檢查函數 370
12.5 核心層SYS模塊 373
12.6 主模塊工程 375
12.6.1 I/O控制類 375
12.6.2 主應用程序類 377
12.6.3 主對話框中的屬性頁 380
12.6.4 主窗口類 381
12.7 防火牆頁面 383
12.7.1 網路訪問監視頁面 383
12.7.2 應用層過濾規則頁面 387
12.7.3 核心層過濾規則頁面 397
12.7.4 系統設置頁面 403
第13章 IP幫助函數 406
13.1 IP配置信息 406
13.1.1 獲取網路配置信息 406
13.1.2 管理網路介面 408
13.1.3 管理IP地址 412
13.2 獲取網路狀態信息 415
13.2.1 獲取TCP連接表 415
13.2.2 獲取UDP監聽表 418
13.2.3 獲取IP統計數據 420
13.3 路由管理 427
13.3.1 獲取路由表 427
13.3.2 管理特定路由 431
13.3.3 修改默認網關的例子 432
13.4 ARP表管理 433
13.4.1 獲取ARP表 433
13.4.2 添加ARP入口 434
13.4.3 刪除ARP入口 434
13.4.4 列印ARP表的例子 434
13.5 進程網路活動監視實例 438
13.5.1 獲取通信的進程終端 438
13.5.2 Netstate源程序代碼 439
第14章 Email協議及其編程 444
14.1 概述 444
14.2 電子郵件介紹 445
14.2.1 電子郵件Internet的地址 445
14.2.2 Internet郵件系統 445
14.2.3 電子郵件信頭的結構及分析 446
14.3 SMTP原理 448
14.3.1 SMTP原理分析 448
14.3.2 SMTP工作機制 449
14.3.3 SMTP命令碼和工作原理 449
14.3.4 SMTP通信模型 450
14.3.5 SMTP的命令和應答 451
14.4 POP3協議原理 452
14.4.1 POP3協議簡介 452
14.4.2 POP3工作原理 453
14.4.3 POP3命令原始碼 454
14.4.4 POP3會話實例 459
14.5 實例分析與程序設計 460
14.5.1 總界面設計 460
14.5.2 SMTP客戶端設計 461
14.5.3 POP3客戶端設計 473
② 推薦一本linux下c語言的書
Linux操作系統以它的開源與包容,已經在當今計算機軟體領域占據非常重要的一席,使用的人越來越多,而且越來越多的程序員也從Windows下的應用程序開發轉入Linux下的應用程序開發。楊鑄編著的《Linux下C語言應用編程》深入淺出地講解了Linux下C應用程序開發所需的基本工具、知識和技巧,主要包括:開發工具的使用和技巧、文件I/O編程、多進程編程、進程間通信、多線程編程、網路編程等內容。可以讓讀者輕松、快速入門Linux下非圖形界面應用編程。
③ 有哪些比較不錯的入門級別的Linux C編程圖書
假設你是計算機科班出身,計算機系的基本課程如數據結構、操作系統、體系結構、編譯原理、計算機網路你全修過
我想大概可以分為4個階段,水平從低到高
從安裝使用=>linux常用命令=>linux系統編程=>內核開發閱讀內核源碼
其中學習linux常用命令時就要學會自己編譯內核,優化系統,調整參數
安裝和常用命令書太多了,找本稍微詳細點的就ok,其間需要學會正則表達式
系統編程推薦《高級unix環境編程》,黑話叫APUE
還有《unix網路編程》
這時候大概還需要看資料理解elf文件格式,連接器和載入器,cmu的一本教材中文名為《深入理解計算機系統》比較好
內核開發閱讀內核源碼階段,從寫驅動入手逐漸深入linux內核開發
參考書如下《linux
device
drivers》,黑話叫ldd
《linux
kernel
development》,黑話叫lkd
《understading
the
linux
kernel》,黑話叫utlk
《linux源碼情景分析》
這四本書為搞內核的必讀書籍
最後,第三階段和第四階段最重動手,空言無益,光看書也不罩,不動手那些東西理解不了
學習linux/unix編程方法的建議
建議學習路徑:
首先先學學編輯器,vim,
emacs什麼的都行。
然後學make
file文件,只要知道一點就行,這樣就可以准備編程序了。
然後看看《C程序設計語言》K&R,這樣呢,基本上就可以進行一般的編程了,順便找本數據結構的書來看。
如果想學習UNIX/LINUX的編程,《APUE》絕對經典的教材,加深一下功底,學習《UNP》的第二卷。這樣基本上系統方面的就可以掌握了。
然後再看Douglus
E.
Comer的《用TCP/IP進行網際互連》第一卷,學習一下網路的知識,再看《UNP》的第一卷,不僅學習網路編程,而且對系統編程的一些常用的技巧就很熟悉了,如果繼續網路編程,建議看《TCP/IP進行網際互連》的第三卷,裡面有很多關於應用協議telnet、ftp等協議的編程。
如果想寫設備驅動程序,首先您的系統編程的介面比如文件、IPC等必須要熟知了,再學習《LDD》2。
對於幾本經典教材的評價:
《The
C
Programing
Language》K&R
經典的C語言程序設計教材,作者是C語言的發明者,教材內容深入淺出。雖然有點老,但是必備的一本手冊,現在有時候我還常翻翻。篇幅比較小,但是每看一遍,就有一遍的收獲。另外也可用譚浩強的《C語言程序設計》代替。
《Advanced
Programing
in
Unix
Envirement》
W.Richard
Stevens:也是非常經典的書(廢話,Stevens的書哪有不經典的!),雖然初學者就可以看,但是事實上它是《Unix
Network
Programing》的一本輔助資料。國內的翻譯的《UNIX環境高級編程》的水平不怎麼樣,現在有影印版,直接讀英文比讀中文來得容易。
《Unix
Network
Programing》W.Richard
Stevens:第一卷講BSD
Socket網路編程介面和另外一種網路編程介面的,不過現在一般都用BSD
Socket,所以這本書只要看大約一半多就可以了。第二卷沒有設計到網路的東西,主要講進程間通訊和Posix線程。所以看了《APUE》以後,就可以看它了,基本上系統的東西就由《APUE》和《UNP》vol2概括了。看過《UNP》以後,您就會知道系統編程的絕大部分編程技巧,即使卷一是講網路編程的。國內是清華翻譯得《Unix網路編程》,翻譯者得功底也比較高,翻譯地比較好。所以建議還是看中文版。
《TCP/IP祥解》一共三卷,卷一講協議,卷二講實現,卷三講編程應用。我沒有怎麼看過。,但是據說也很經典的,因為我沒有時間看卷二,所以不便評價。
《用TCP/IP進行網際互連》Douglus.E.Comer
一共三卷,卷一講原理,卷二講實現,卷三講高級協議。感覺上這一套要比Stevens的那一套要好,就連Stevens也不得不承認它的第一卷非常經典。事實上,第一卷即使你沒有一點網路的知識,看完以後也會對網路的來龍去脈了如指掌。第一卷中還有很多習題也設計得經典和實用,因為作者本身就是一位教師,並且卷一是國外研究生的教材。習題並沒有答案,留給讀者思考,因為問題得答案可以讓你成為一個中級的Hacker,這些問題的答案可以象Douglus索取,不過只有他只給教師卷二我沒有怎麼看,卷三可以作為參考手冊,其中地例子也很經典。如果您看過Qterm的源代碼,就會知道Qterm的telnet
實現部分大多數就是從這本書的源代碼過來的。對於網路原理的書,我推薦它,而不是Stevens的《TCP/IP祥解》。
《Operating
System
-
Design
and
Implement》這個是講操作系統的書,用Minix做的例子。作者母語不是英文,所以英文看起來比較晦澀。國內翻譯的是《操作系統設計與實現》,我沒看過中文版,因為翻譯者是尤晉元,他翻譯的《APUE》已經讓我失望頭頂了。讀了這本書,對操作系統的底層怎麼工作的就會
有一個清晰的認識。
《Linux
Device
Driver》2e
,為數不多的關於Linux設備驅動程序的好書。不過內容有些雜亂,如果您沒有一些寫驅動的經驗,初次看會有些摸不著南北。國內翻譯的是《Linux設備驅動程序》第二版,第一版,第二版的譯者我都有很深的接觸,不過總體上來說,雖然第二版翻譯的有些不盡人意,但是相比第一版來說已經超出了一大截。要讀這一本書,至少應該先找一些《計算機原理》《計算機體系結構》的書來馬馬虎虎讀讀,至少應該對硬體和計算機的工作過程有一些了解。
參考自網路。
④ Linux C 編程入門書籍推薦
The C Programming Language
本書是由C語言的設計者Brian W. Kernighan和Dennis M.Ritchie編寫的一部介紹標准C語言及其程序設計方法的權威性經典著作。全面、系統地講述了C語言的各個特性及程序設計的基本方法,包括基本概念、類型和表達式、控制流、函數與程序結構、指針與數組、結構、輸入與輸出、UNIX系統介面、標准庫等內容。 本書原著 即為C語言的設計者之一Dennis M.Ritchie和著名的計算機科學家Brian W.Kernighan合著的一本介紹C語言的權威經典著作。人們熟知的「hello,World」程序就是由本書首次引入的,現在,這一程序已經成為所有程序設 計語言入門的第一課。原著第2版根據1987年制定的ANSIC標准做了適當的修訂,引入了最新的語言形式,並增加了新的示例,通過簡潔的描述、典型的示例,作者全面、系統、准確地講述了C語言的各個特性以及程序設計的基本方法。對於計算機從業人員來說,本書是一本必讀的程序設計語 言方面的參考書。
⑤ Linux 下的 C 編程有哪些值得推薦的好書
《unix環境高級編程》
《linux程序設計》
並不是我歧視,編程教材靠譜的還是買國外經典教材吧。
⑥ 推薦一本linux環境下c語言編程的書,適合初學者的。
Linux操作系統下C語言編程入門
GNU.Linux.編程指南.(第二版)
網上教程也很多,其實linux下和windows下的c語法都是一樣的,只是編譯c文件的編譯器不一樣罷了。
《C Primer Plus&C++Primer Plus第五版中文版》 此書也有英文版,比較經典的一本書,內容詳細,知識涵蓋廣,就是比較厚,有耐力的話,推薦這本。
⑦ linux C 編程應該找哪方面的書籍學學推薦一本來看看
重點推薦《Linux c程序設計大全》這本很基礎 就是有些小錯誤 我也在學Linux c編程 看的就是這本 老師給我們推薦的
還有《LINUX C編程一站式學習》
《嵌入式LINUX上的C語言編程》
⑧ 求推薦一些linux系統C語言開發書籍
web服務的不懂。
基礎的推薦一本《linux C函數庫參考手冊》http://www1.huachu.com.cn/book/02/ba02132597.htm,可以當速查手冊用,很實用。當年我就覺得這本使用率最高。分類介紹了常用庫函數,有簡單例子。比如文件操作類的,打開看看,就能寫一個讀寫文件的程序了。
web服務現在不都java嘛?c後台用的多,系統層用的多。前端還是java比較多。這個幫不了你了。
⑨ 想學linux下的c編程和應用程序開發 哪本書比較好
我推薦你《精通UNIX下C語言編程與項目實踐》,電子工業出版社的。
還有一本是《嵌入式Linux應用程序開發詳解》,人民郵電出版社的。
⑩ 推薦一本linux c語言的經典書籍,內核和系統編程方面的
比如編寫一個c語言文件
1.cpp
【建議使用gedit,可以使用中文哦】
然後簡單方法就是:
g++
1.cpp
然後./a.out
稍微麻煩點就是
g++
1.cpp
-o
out
./out