隨著電腦技術的高速發展,Linux系統在伺服器解決方案中的優勢越來越被開發者認同。在電腦就業市場上,基於Linux系統開發的人員需求量也不斷增加。其中,對Linux系統環境下C語言開發人員的需求尤為明顯。由於C語言本身在語法結構、語言風格和程式設計思想上的特點,使C語言一直被公認為難以學習、輕鬆掌握。
儘管Linux環境下C語言開發越來越被企業和開發人員認同,關心的人數也越來越多,但實際上,真正了解和掌握C語言開發的人卻很少。因此,筆者總結親身學習Linux系統函數介面的經驗,並結合自己多年從事Linux 環境下C語言應用程式開發的經驗,撰寫出這本能夠真正讓開發者掌握Linux環境下C語言程式設計技巧的書。在這本書中,
本書從實際開發者的角度全面介紹Linux環境下C語言程式設計的基礎知識,涉及Linux系統函數的各個面向,選擇目前最熱門、應用最廣的技術進行深入討論。筆者透過28章的學習規劃,讓讀者快速掌握Linux環境下C語言程式設計的基本知識和程式設計技巧。每個核心概念都使用通俗的語言進行解釋,透過實例讓讀者更直觀地掌握概念的含義,達到靈活使用Linux系統函數介面撰寫程式的目的。
目錄
前言
第一部分 Linux下c語言基礎
第1 章 Linux 簡介
1.1 GNU 簡介
1.2 Linux 簡介
1.3 Linux 環境下的其他程式設計語言
第2 章控制結構
2.1 goto 敘述
2.2 C 語言中的分支結構
2.3 逐位元運算
2.4 C 語言中的迴圈結構
2.5 switch 敘述
2.6 最佳化控制結構
2.7 本章小結
第3 章 C語言中的函數
3.1 函數的本質
3.2 變數的作用域和生命期
3.3 變數的初值
3.4 與函數有關的最佳化
3.5 撰寫多檔案程式--變數的儲存類別
3.6 撰寫多檔案的程式--連結的作用
3.7 可變參數
第4 章C語言中的指標與字串
4.1 sizeof 運算子
4.2 指標的應用
4.3 函數的指標
4.4 字串
第5 章 C語言的高級技術
5.1 結構體與共同體
5.2 位元運算
5.3 預先處理
5.4 C99 新標準關鍵字詳解
第二部分 C語言開發環境
第6 章 vi 與vim 編輯器
6.1 vi 編輯器入門
6.2 vi 一般操作
6.3 vi 的增強操作
第7 章 gcc 編譯器
7.1 初探gcc 編譯器
7.2 gcc 常用選項
7.3 連結原理
7.4 關於程式庫
7.5 gcc 工具鏈
第8 章 makefile
8.1 makefile 檔案入門
8.2 書寫makefile 規則
8.3 使用指令
8.4 使用變數
8.5 使用條件判斷
8.6 使用函數
8.7 makefile 實例
第9 章 gdb
9.1 列出來源程式
9.2 執行程式的指令
9.3 操作中斷點的指令
9.4 檢視執行時資料
9.5 改變程式的執行
9.6 gdb 高級應用
第三部分 Linux 執行緒操作
第10 章 執行緒環境
10.1 程式的啟動和退出
10.2 Linux 執行緒記憶體管理
10.3 shell 環境
10.4 全域跳躍
10.5 本章小結
第11 章 執行緒環境
11.1 執行緒識別字
11.2 執行緒操作
11.3 執行程式
11.4 關係操作
第12 章 時間和日曆歷程
12.1 系統時間
12.2 日曆時間
第13 章 訊號及訊號處理
13.1 訊號的基礎
13.2 訊號的影響
13.3 訊號處理函數
13.4 訊號集與遮罩訊號
第14 章 執行緒間通訊
14.1 執行緒間通訊概述
14.2 管線
14.3 FIFO 管線
14.4 System V IPC/POSIX IPC
14.5 共用記憶體
14.6 訊號量
14.7 訊息佇列
第15 章 執行緒
15.1 執行緒與處理程序
15.2 執行緒識別字
15.3 執行緒基本操作
第16 章 執行緒高級操作
16.1 執行緒同步--使用互斥量
16.2 執行緒同步--使用讀寫入鎖
16.3 執行緒屬性
第四部分 Linux檔案操作
第17 章 檔案I/O15 執行緒
17.1 檔案描述符號的概念
17.2 檔案I/O 操作
17.3 檔案描述符號操作
17.4 非阻塞檔案I/O
17.5 記憶體映射I/O
第18 章 檔案管理
18.1 檔案狀態
18.2 檔案類型
18.3 檔案權限
18.4 檔案許可權操作
18.5 檔案系統結構
18.6 檔案的硬連結
18.7 改變檔案所有者
18.8 操作檔案的時間
第19 章 目錄操作
19.1 目錄的許可權
19.2 目錄操作
19.3 處理程序的工作目錄
第20 章 特殊檔案
20.1 符號連結操作
20.2 proc 檔案系統
第21 章 基於串流的I/O
21.1 串流與緩衝
21.2 基於串流的檔案操作
第五部分 Linux網絡編程
第22 章 TCP 和UDP 協定
22.1 電腦網路的體系結構簡介
22.2 Client/Server 方式簡介
22.3 使用者資料封包通訊協定UDP
22.4 傳輸控制協定 TCP
第23 章 網路程式設計基礎
23.1 通訊端概念
23.2 準備工作
23.3 通訊端基礎程式設計
23.4 非阻塞通訊端
第24 章 網路程式設計進階
24.1 通訊端程式設計深入
24.2 多路選擇I/O
24.3 非網路通訊通訊端
第25 章 網路程式設計實例--實現檔案傳輸程式
25.1 程式設計
25.2 檔案傳輸程式的實現
25.3 測試和驗證
第26章 網路程式設計實例--簡單的Web 伺服器
26.1 程式設計
26.2 Web 伺服器的實現
26.3 測試和驗證
第六部分 shell 指令稿知識
第27 章 shell 指令稿基礎
27.1 撰寫最簡單的shell 指令稿
27.2 shell 中的變數
27.3 退出狀態
27.4 條件測試
第28 章 shell 指令稿中的控制結構
28.1 shell 指令稿中的指令替換
28.2 分支結構
28.3 條件測試指令的值
28.4 循環結構
28.5 定義函數和使用函數
第一部分 Linux下c語言基礎
第1 章 Linux 簡介
1.1 GNU 簡介
1.2 Linux 簡介
1.3 Linux 環境下的其他程式設計語言
第2 章控制結構
2.1 goto 敘述
2.2 C 語言中的分支結構
2.3 逐位元運算
2.4 C 語言中的迴圈結構
2.5 switch 敘述
2.6 最佳化控制結構
2.7 本章小結
第3 章 C語言中的函數
3.1 函數的本質
3.2 變數的作用域和生命期
3.3 變數的初值
3.4 與函數有關的最佳化
3.5 撰寫多檔案程式--變數的儲存類別
3.6 撰寫多檔案的程式--連結的作用
3.7 可變參數
第4 章C語言中的指標與字串
4.1 sizeof 運算子
4.2 指標的應用
4.3 函數的指標
4.4 字串
第5 章 C語言的高級技術
5.1 結構體與共同體
5.2 位元運算
5.3 預先處理
5.4 C99 新標準關鍵字詳解
第二部分 C語言開發環境
第6 章 vi 與vim 編輯器
6.1 vi 編輯器入門
6.2 vi 一般操作
6.3 vi 的增強操作
第7 章 gcc 編譯器
7.1 初探gcc 編譯器
7.2 gcc 常用選項
7.3 連結原理
7.4 關於程式庫
7.5 gcc 工具鏈
第8 章 makefile
8.1 makefile 檔案入門
8.2 書寫makefile 規則
8.3 使用指令
8.4 使用變數
8.5 使用條件判斷
8.6 使用函數
8.7 makefile 實例
第9 章 gdb
9.1 列出來源程式
9.2 執行程式的指令
9.3 操作中斷點的指令
9.4 檢視執行時資料
9.5 改變程式的執行
9.6 gdb 高級應用
第三部分 Linux 執行緒操作
第10 章 執行緒環境
10.1 程式的啟動和退出
10.2 Linux 執行緒記憶體管理
10.3 shell 環境
10.4 全域跳躍
10.5 本章小結
第11 章 執行緒環境
11.1 執行緒識別字
11.2 執行緒操作
11.3 執行程式
11.4 關係操作
第12 章 時間和日曆歷程
12.1 系統時間
12.2 日曆時間
第13 章 訊號及訊號處理
13.1 訊號的基礎
13.2 訊號的影響
13.3 訊號處理函數
13.4 訊號集與遮罩訊號
第14 章 執行緒間通訊
14.1 執行緒間通訊概述
14.2 管線
14.3 FIFO 管線
14.4 System V IPC/POSIX IPC
14.5 共用記憶體
14.6 訊號量
14.7 訊息佇列
第15 章 執行緒
15.1 執行緒與處理程序
15.2 執行緒識別字
15.3 執行緒基本操作
第16 章 執行緒高級操作
16.1 執行緒同步--使用互斥量
16.2 執行緒同步--使用讀寫入鎖
16.3 執行緒屬性
第四部分 Linux檔案操作
第17 章 檔案I/O15 執行緒
17.1 檔案描述符號的概念
17.2 檔案I/O 操作
17.3 檔案描述符號操作
17.4 非阻塞檔案I/O
17.5 記憶體映射I/O
第18 章 檔案管理
18.1 檔案狀態
18.2 檔案類型
18.3 檔案權限
18.4 檔案許可權操作
18.5 檔案系統結構
18.6 檔案的硬連結
18.7 改變檔案所有者
18.8 操作檔案的時間
第19 章 目錄操作
19.1 目錄的許可權
19.2 目錄操作
19.3 處理程序的工作目錄
第20 章 特殊檔案
20.1 符號連結操作
20.2 proc 檔案系統
第21 章 基於串流的I/O
21.1 串流與緩衝
21.2 基於串流的檔案操作
第五部分 Linux網絡編程
第22 章 TCP 和UDP 協定
22.1 電腦網路的體系結構簡介
22.2 Client/Server 方式簡介
22.3 使用者資料封包通訊協定UDP
22.4 傳輸控制協定 TCP
第23 章 網路程式設計基礎
23.1 通訊端概念
23.2 準備工作
23.3 通訊端基礎程式設計
23.4 非阻塞通訊端
第24 章 網路程式設計進階
24.1 通訊端程式設計深入
24.2 多路選擇I/O
24.3 非網路通訊通訊端
第25 章 網路程式設計實例--實現檔案傳輸程式
25.1 程式設計
25.2 檔案傳輸程式的實現
25.3 測試和驗證
第26章 網路程式設計實例--簡單的Web 伺服器
26.1 程式設計
26.2 Web 伺服器的實現
26.3 測試和驗證
第六部分 shell 指令稿知識
第27 章 shell 指令稿基礎
27.1 撰寫最簡單的shell 指令稿
27.2 shell 中的變數
27.3 退出狀態
27.4 條件測試
第28 章 shell 指令稿中的控制結構
28.1 shell 指令稿中的指令替換
28.2 分支結構
28.3 條件測試指令的值
28.4 循環結構
28.5 定義函數和使用函數
序
前言
隨著電腦技術的高速發展,Linux 系統在伺服器解決方案中的優勢越來越被開發者認同。在電腦就業市場上,基於Linux 系統開發的人員需求量也不斷增加。其中,對Linux系統環境下C 語言開發人員的需求尤為明顯。由於C 語言本身在語法結構、語言風格和程式設計思想上的特點,使C 語言一直被公認為難以學習、輕鬆掌握。
儘管Linux 環境下C 語言開發越來越被企業和開發人員認同,關心的人數也越來越多,但實際上,真正了解和掌握C 語言開發的人卻很少。因此,筆者總結親身學習Linux系統函數介面的經驗,並結合自己多年從事Linux 環境下C 語言應用程式開發的經驗,撰寫出這本能夠真正讓開發者掌握Linux 環境下C 語言程式設計技巧的書。在這本書中,筆者將透過28 章的學習規劃,讓讀者快速掌握Linux 環境下C 語言程式設計的基本知識和程式設計技巧。
本書特色
相比同類圖書,本書具有以下明顯特色。
1.技術紮實,內容突出
本書從實際開發者的角度全面地介紹了Linux 環境下C 語言程式設計的基礎知識。本書涉及了Linux 系統函數的各個方面,選擇了目前最熱門、應用最廣的技術進行了深入的討論。
2.概念準確,了解深刻
在本書中,對每個核心的概念都使用通俗形象的語言進行解釋,對於很多關鍵概念,還配有相關插圖,讓讀者更加直觀地掌握概念的含義。同時,鑑於廣大的開發者對Windows 比較熟悉,本書在多處概念講解中,將其和Windows 系統開發中相關的概念進行比較講解,來加深讀者對Linux 開發的了解。
3.實例豐富,強調實作
為了讓讀者易於掌握Linux 環境下C 語言程式設計的技巧,本書列出了大量實例進行講解,透過這些實例,讀者可以更加深入地了解相關概念,從而達到靈活使用Linux 系統函數介面撰寫程式的目的。另外,本書重點強調實作性,本書中的很多例子都來源於作者的實際開發,大多數實例都是一些實際專案中截取的一部分子功能。透過對這些例子的學習,可以增強讀者的動手實作能力。
4.程式碼標準,註釋詳細
為了讓讀者了解Linux 環境下開發的要求,本書在講解程式碼時,十分注意程式碼標準。同時,所有的程式碼都取自實際開發經驗,符合標準。為了幫助讀者了解程式碼含義,本書對程式碼進行了詳細的註釋,讀者可以透過註釋十分便利地了解程式碼的結構和流程。
本書內容
本書共分為6 篇,循序漸進地講述了Linux 環境下C 語言的程式設計技術,從基本概念到實際實作、從系統函數介面的認識到實際操作等全方位的知識。
第1 篇(第1 ∼ 5 章)簡單介紹了Linux 的發展歷史、發展方向以及Linux 環境下的一些常用的開發語言。同時還介紹了C 語言中的重點和困難。在本篇跨過C 語言的基礎部分,對C 語言的困難和在現實開發過程中容易出錯的部分進行了深入講解,並且配以大量的實例。
第2 篇(第6 ∼ 9 章)講述了Linux 作業系統中的C 語言開發環境。在本篇中詳細介紹了Linux 環境下的開發工具,同時為了使讀者了解透徹,還舉了對應的實例,供讀者參考、模擬、實作。
第3 篇(第10 ∼ 16 章)講述了Linux 環境下和處理程序有關的操作,包括Linux 作業系統中處理程序執行的環境、Linux 作業系統中對處理程序的控制、Linux 環境下處理程序之間的通訊方法以及執行緒的相關操作。
第4 篇(第17 ∼ 21 章)介紹了Linux 環境下和檔案有關的操作,包括Linux 作業系統中讀寫檔案的I/O、檔案系統的結構與組織、Linux 中的特殊檔案的使用以及Linux 環境下基於串流的I/O。
第5 篇(第22 ∼ 26 章)專門介紹Linux 環境下的網路程式設計。透過對網路基礎協定、Linux 網路的程式設計基礎操作以及兩個網路應用程式實例的講解,使讀者理清Linux 環境下網路的流程。
第6 篇(第27 ∼ 28 章)介紹Linux 環境下的shell 指令稿。透過對撰寫shell 指令稿基礎知識的闡述,使讀者基本掌握這門和C 語言配合的最好的指令碼語言。
閱讀本書建議
為了提昇讀者學習效率,增強學習效果,特別提出以下學習建議。
◎在本書中,為了幫助讀者了解概念,多次使用了圖示的方法來講解概念。請讀者認真檢視這些示意圖,這樣可以幫助讀者更加深刻地了解概念。
◎本書的所有實例都有實際開發背景,所以,請讀者親自完成書中的實例,這樣才能身臨其境地感受到實際專案對開發者的要求。
◎注重技術交流。Linux 本身就是開放原始碼的系統,從誕生之日起,就和技術交流密切相關。根據筆者的經驗,技術交流和網路資源對開發者而言,是至關重要的。希望讀者一開始就能注意到技術交流的重要性。
本書目標讀者
◎ Linux 環境下C 語言程式設計的初學者。
◎ Linux 系統函數介面的研究人員。
◎ Linux 伺服器程式的開發人員。
◎嵌入式Linux 程式的開發人員。
◎ Linux 桌面應用的開發人員。
◎需要在Linux 環境下進行畢業設計的電腦學員。
◎想了解Linux 環境下C 語言程式設計的其他人員。
隨著電腦技術的高速發展,Linux 系統在伺服器解決方案中的優勢越來越被開發者認同。在電腦就業市場上,基於Linux 系統開發的人員需求量也不斷增加。其中,對Linux系統環境下C 語言開發人員的需求尤為明顯。由於C 語言本身在語法結構、語言風格和程式設計思想上的特點,使C 語言一直被公認為難以學習、輕鬆掌握。
儘管Linux 環境下C 語言開發越來越被企業和開發人員認同,關心的人數也越來越多,但實際上,真正了解和掌握C 語言開發的人卻很少。因此,筆者總結親身學習Linux系統函數介面的經驗,並結合自己多年從事Linux 環境下C 語言應用程式開發的經驗,撰寫出這本能夠真正讓開發者掌握Linux 環境下C 語言程式設計技巧的書。在這本書中,筆者將透過28 章的學習規劃,讓讀者快速掌握Linux 環境下C 語言程式設計的基本知識和程式設計技巧。
本書特色
相比同類圖書,本書具有以下明顯特色。
1.技術紮實,內容突出
本書從實際開發者的角度全面地介紹了Linux 環境下C 語言程式設計的基礎知識。本書涉及了Linux 系統函數的各個方面,選擇了目前最熱門、應用最廣的技術進行了深入的討論。
2.概念準確,了解深刻
在本書中,對每個核心的概念都使用通俗形象的語言進行解釋,對於很多關鍵概念,還配有相關插圖,讓讀者更加直觀地掌握概念的含義。同時,鑑於廣大的開發者對Windows 比較熟悉,本書在多處概念講解中,將其和Windows 系統開發中相關的概念進行比較講解,來加深讀者對Linux 開發的了解。
3.實例豐富,強調實作
為了讓讀者易於掌握Linux 環境下C 語言程式設計的技巧,本書列出了大量實例進行講解,透過這些實例,讀者可以更加深入地了解相關概念,從而達到靈活使用Linux 系統函數介面撰寫程式的目的。另外,本書重點強調實作性,本書中的很多例子都來源於作者的實際開發,大多數實例都是一些實際專案中截取的一部分子功能。透過對這些例子的學習,可以增強讀者的動手實作能力。
4.程式碼標準,註釋詳細
為了讓讀者了解Linux 環境下開發的要求,本書在講解程式碼時,十分注意程式碼標準。同時,所有的程式碼都取自實際開發經驗,符合標準。為了幫助讀者了解程式碼含義,本書對程式碼進行了詳細的註釋,讀者可以透過註釋十分便利地了解程式碼的結構和流程。
本書內容
本書共分為6 篇,循序漸進地講述了Linux 環境下C 語言的程式設計技術,從基本概念到實際實作、從系統函數介面的認識到實際操作等全方位的知識。
第1 篇(第1 ∼ 5 章)簡單介紹了Linux 的發展歷史、發展方向以及Linux 環境下的一些常用的開發語言。同時還介紹了C 語言中的重點和困難。在本篇跨過C 語言的基礎部分,對C 語言的困難和在現實開發過程中容易出錯的部分進行了深入講解,並且配以大量的實例。
第2 篇(第6 ∼ 9 章)講述了Linux 作業系統中的C 語言開發環境。在本篇中詳細介紹了Linux 環境下的開發工具,同時為了使讀者了解透徹,還舉了對應的實例,供讀者參考、模擬、實作。
第3 篇(第10 ∼ 16 章)講述了Linux 環境下和處理程序有關的操作,包括Linux 作業系統中處理程序執行的環境、Linux 作業系統中對處理程序的控制、Linux 環境下處理程序之間的通訊方法以及執行緒的相關操作。
第4 篇(第17 ∼ 21 章)介紹了Linux 環境下和檔案有關的操作,包括Linux 作業系統中讀寫檔案的I/O、檔案系統的結構與組織、Linux 中的特殊檔案的使用以及Linux 環境下基於串流的I/O。
第5 篇(第22 ∼ 26 章)專門介紹Linux 環境下的網路程式設計。透過對網路基礎協定、Linux 網路的程式設計基礎操作以及兩個網路應用程式實例的講解,使讀者理清Linux 環境下網路的流程。
第6 篇(第27 ∼ 28 章)介紹Linux 環境下的shell 指令稿。透過對撰寫shell 指令稿基礎知識的闡述,使讀者基本掌握這門和C 語言配合的最好的指令碼語言。
閱讀本書建議
為了提昇讀者學習效率,增強學習效果,特別提出以下學習建議。
◎在本書中,為了幫助讀者了解概念,多次使用了圖示的方法來講解概念。請讀者認真檢視這些示意圖,這樣可以幫助讀者更加深刻地了解概念。
◎本書的所有實例都有實際開發背景,所以,請讀者親自完成書中的實例,這樣才能身臨其境地感受到實際專案對開發者的要求。
◎注重技術交流。Linux 本身就是開放原始碼的系統,從誕生之日起,就和技術交流密切相關。根據筆者的經驗,技術交流和網路資源對開發者而言,是至關重要的。希望讀者一開始就能注意到技術交流的重要性。
本書目標讀者
◎ Linux 環境下C 語言程式設計的初學者。
◎ Linux 系統函數介面的研究人員。
◎ Linux 伺服器程式的開發人員。
◎嵌入式Linux 程式的開發人員。
◎ Linux 桌面應用的開發人員。
◎需要在Linux 環境下進行畢業設計的電腦學員。
◎想了解Linux 環境下C 語言程式設計的其他人員。
網路書店
類別
折扣
價格
-
新書65折$570
-
新書79折$695
-
新書79折$695
-
新書79折$695
-
新書9折$792
-
新書9折$792