1. 程式人生 > >Linux程式設計(第4版)

Linux程式設計(第4版)

時至今日,Linux系統已經從一個個人作品發展為可以用於各種關鍵任務的成熟、高效和穩定的作業系統,因為具備跨平臺、開源、支援眾多應用軟體和網路協議等優點,它得到了各大主流軟硬體廠商的支援,也成為廣大程式設計人員理想的開發平臺。

本書是Linux程式設計領域的經典名著,以簡單易懂、內容全面和示例豐富而受到廣泛好評。中文版前兩版出版後,在國內的Linux愛好者和程式設計師中也引起了強烈反響,這一熱潮一直持續至今。本書是國內讀者翹首以待的第4版,此次新版內容組織更加嚴謹,譯者更是細心雕琢,保留了這部權威著作的原汁原味。

對Linux所提供的功能全面而準確的闡述,以及貫穿全書的示例程式體驗,使本書不僅成為初學者的最佳Linux程式設計指南,而且是中高階程式設計師不可或缺的參考書。

 

需要學習的朋友可以通過網盤免費下載pdf版 (先點選普通下載-----再選擇普通使用者就能免費下載了)

http://putpan.com/fs/5yib7ens5hu7e48d8/

《Linux程式設計》是我的Linux程式設計入門書籍,也是做為教材使用了一整個學期,在閱讀和學習這本書的時候產生了很多的疑問,書裡也沒有對應的解答,直到……直到我看了APUE,帶著這些問題去學習APUE,產生了巨大的能量。總之,推薦這本書,但是這本書也只是入門書籍,站在《Linux程式設計》的肩膀上,學習APUE,在Linux的世界裡遨遊吧!

作者簡介  · · · · · ·

Neil Matthew 和Richard Stones世界知名的Linux/UNIX專家,有數十年Linux/UNIX開發經驗和從業經歷。他們使用過幾乎所有UNIX版本,並精通C/C++、LISP、Fortran、Perl、Tcl和Prolog等各種語言。他們從事過各種軟體專案,從實時嵌入式系統到會計系統和零售資訊系統。除本書外,他們還合著了PostgreSQL、MySQL方面的圖書。

目錄  · · · · · ·

第1章 入門
1.1 UNIX、Linux和GNU簡介
1.1.1 什麼是UNIX
1.1.2 什麼是Linux
1.1.3 GNU專案和自由軟體基金會
1.1.4 Linux發行版
1.2 Linux程式設計
1.2.1 Linux程式
1.2.2 文字編輯器
1.2.3 C語言編譯器
1.2.4 開發系統導引
1.3 獲得幫助
1.4 小結
第2章 shell程式設計
2.1 為什麼使用shell程式設計
2.2 一點哲學
2.3 什麼是shell
2.4 管道和重定向
2.4.1 重定向輸出
2.4.2 重定向輸入
2.4.3 管道
2.5 作為程式設計語言的shell
2.5.1 互動式程式
2.5.2 建立指令碼
2.5.3 把指令碼設定為可執行
2.6 shell的語法
2.6.1 變數
2.6.2 條件
2.6.3 控制結構
2.6.4 函式
2.6.5 命令
2.6.6 命令的執行
2.6.7 here文件
2.6.8 除錯指令碼程式
2.7 邁向圖形化:dialog工具
2.8 綜合應用
2.8.1 需求
2.8.2 設計
2.8.3 應用程式的說明
2.9 小結
第3章 檔案操作
3.1 Linux檔案結構
3.1.1 目錄
3.1.2 檔案和裝置
3.2 系統呼叫和裝置驅動程式
3.3 庫函式
3.4 底層檔案訪問
3.4.1 write系統呼叫
3.4.2 read系統呼叫
3.4.3 open系統呼叫
3.4.4 訪問許可權的初始值
3.4.5 其他與檔案管理有關的系統呼叫
3.5 標準I/O庫
3.5.1 fopen函式
3.5.2 fread函式
3.5.3 fwrite函式
3.5.4 fclose函式
3.5.5 fflush函式
3.5.6 fseek函式
3.5.7 fgetc、getc和getchar函式
3.5.8 fputc、putc和putchar函式
3.5.9 fgets和gets函式
3.6 格式化輸入和輸出
3.6.1 printf、fprintf和sprintf函式
3.6.2 scanf、fscanf和sscanf函式
3.6.3 其他流函式
3.6.4 檔案流錯誤
3.6.5 檔案流和檔案描述符
3.7 檔案和目錄的維護
3.7.1 chmod系統呼叫
3.7.2 chown系統呼叫
3.7.3 unlink、link和symlink系統呼叫
3.7.4 mkdir和rmdir系統呼叫
3.7.5 chdir系統呼叫和getcwd函式
3.8 掃描目錄
3.8.1 opendir函式
3.8.2 readdir函式
3.8.3 telldir函式
3.8.4 seekdir函式
3.8.5 closedir函式
3.9 錯誤處理
3.9.1 strerror函式
3.9.2 perror函式
3.10 /proc檔案系統
3.11 高階主題:fcntl和mmap
3.11.1 fcntl系統呼叫
3.11.2 mmap函式
3.12 小結
第4章 Linux環境
4.1 程式引數
4.1.1 getopt
4.1.2 getopt_long
4.2 環境變數
4.2.1 環境變數的用途
4.2.2 environ變數
4.3 時間和日期
4.4 臨時檔案
4.5 使用者資訊
4.6 主機資訊
4.7 日誌
4.8 資源和限制
4.9 小結
第5章 終端
5.1 對終端進行讀寫
5.2 與終端進行對話
5.3 終端驅動程式和通用終端介面
5.3.1 概述
5.3.2 硬體模型
5.4 termios結構
5.4.1 輸入模式
5.4.2 輸出模式
5.4.3 控制模式
5.4.4 本地模式
5.4.5 特殊控制字元
5.4.6 終端速度
5.4.7 其他函式
5.5 終端的輸出
5.5.1 終端的型別
5.5.2 識別終端型別
5.5.3 使用terminfo功能標誌
5.6 檢測擊鍵動作
5.7 虛擬控制檯
5.8 偽終端
5.9 小結
第6章 使用curses函式庫管理基於文字的螢幕
6.1 用curses函式庫進行編譯
6.2 curses術語和概念
6.3 螢幕
6.3.1 輸出到螢幕
6.3.2 從螢幕讀取
6.3.3 清除螢幕
6.3.4 移動游標
6.3.5 字元屬性
6.4 鍵盤
6.4.1 鍵盤模式
6.4.2 鍵盤輸入
6.5 視窗
6.5.1 WINDOW結構
6.5.2 通用函式
6.5.3 移動和更新視窗
6.5.4 優化螢幕重新整理
6.6 子視窗
6.7 keypad模式
6.8 彩色顯示
6.9 pad
6.10 CD唱片應用程式
6.10.1 新CD唱片應用程式的開始部分
6.10.2 main函式
6.10.3 建立選單
6.10.4 操作資料庫檔案
6.10.5 查詢CD資料庫
6.11 小結
第7章 資料管理
7.1 記憶體管理
7.1.1 簡單的記憶體分配
7.1.2 分配大量的記憶體
7.1.3 濫用記憶體
7.1.4 空指標
7.1.5 釋放記憶體
7.1.6 其他記憶體分配函式
7.2 檔案鎖定
7.2.1 建立鎖檔案
7.2.2 區域鎖定
7.2.3 鎖定狀態下的讀寫操作
7.2.4 檔案鎖的競爭
7.2.5 其他鎖命令
7.2.6 死鎖
7.3 資料庫
7.3.1 dbm資料庫
7.3.2 dbm例程
7.3.3 dbm訪問函式
7.3.4 其他dbm函式
7.4 CD唱片應用程式
7.4.1 更新設計
7.4.2 使用dbm資料庫的CD唱片應用程式
7.5 小結
第8章 MySQL
8.1 安裝
8.1.1 MySQL軟體包
8.1.2 安裝後的配置
8.1.3 安裝後的故障修復
8.2 MySQL管理
8.2.1 命令
8.2.2 建立使用者並賦予許可權
8.2.3 密碼
8.2.4 建立資料庫
8.2.5 資料型別
8.2.6 建立表
8.2.7 圖形化工具
8.3 使用C語言訪問MySQL資料
8.3.1 連線例程
8.3.2 錯誤處理
8.3.3 執行SQL語句
8.3.4 更多的函式
8.4 CD資料庫應用程式
8.4.1 建立表
8.4.2 新增資料
8.4.3 使用C語言訪問資料
8.5 小結
第9章 開發工具
9.1 多個原始檔帶來的問題
9.2 make命令和makefile檔案
9.2.1 makefile的語法
9.2.2 make命令的選項和引數
9.2.3 makefile檔案中的註釋
9.2.4 makefile檔案中的巨集
9.2.5 多個目標
9.2.6 內建規則
9.2.7 字尾和模式規則
9.2.8 用make管理函式庫
9.2.9 高階主題:makefile檔案和子目錄
9.2.10 GNU make和gcc
9.3 原始碼控制
9.3.1 RCS
9.3.2 SCCS
9.3.3 RCS和SCCS的比較
9.3.4 CVS
9.3.5 CVS的前端程式
9.3.6 Subversion
9.4 編寫手冊頁
9.5 發行軟體
9.5.1 patch程式
9.5.2 其他軟體發行工具
9.6 RPM軟體包
9.6.1 使用RPM軟體包檔案
9.6.2 安裝RPM軟體包
9.6.3 建立RPM軟體包
9.7 其他軟體包格式
9.8 開發環境
9.8.1 KDevelop
9.8.2 其他開發環境
9.9 小結
第10章 除錯
10.1 錯誤型別
10.2 常用除錯技巧
10.2.1 有漏洞的程式
10.2.2 程式碼檢查
10.2.3 取樣法
10.2.4 程式的受控執行
10.3 使用gdb進行除錯
10.3.1 啟動gdb
10.3.2 執行一個程式
10.3.3 棧跟蹤
10.3.4 檢查變數
10.3.5 列出程式原始碼
10.3.6 設定斷點
10.3.7 用偵錯程式打補丁
10.3.8 深入學習gdb
10.4 其他除錯工具
10.4.1 lint:清理程式中的“垃圾”
10.4.2 函式呼叫工具
10.4.3 用prof/gprof產生執行存檔
10.5 斷言
10.6 記憶體除錯
10.6.1 ElectricFence函式庫
10.6.2 valgrind
10.7 小結
第11章 程序和訊號
11.1 什麼是程序
11.2 程序的結構
11.2.1 程序表
11.2.2 檢視程序
11.2.3 系統程序
11.2.4 程序排程
11.3 啟動新程序
11.3.1 等待一個程序
11.3.2 殭屍程序
11.3.3 輸入和輸出重定向
11.3.4 執行緒
11.4 訊號
11.4.1 傳送訊號
11.4.2 訊號集
11.5 小結
第12章 POSIX執行緒
12.1 什麼是執行緒
12.2 執行緒的優點和缺點
12.3 第一個執行緒程式
12.4 同時執行
12.5 同步
12.5.1 用訊號量進行同步
12.5.2 用互斥量進行同步
12.6 執行緒的屬性
12.7 取消一個執行緒
12.8 多執行緒
12.9 小結
第13章 程序間通訊:管道
13.1 什麼是管道
13.2 程序管道
13.3 將輸出送往popen
13.3.1 傳遞更多的資料
13.3.2 如何實現popen
13.4 pipe呼叫
13.5 父程序和子程序
13.5.1 管道關閉後的讀操作
13.5.2 把管道用作標準輸入和標準輸出
13.6 命名管道:FIFO
13.6.1 訪問FIFO檔案
13.6.2 高階主題:使用FIFO的客戶/伺服器應用程式
13.7 CD資料庫應用程式
13.7.1 目標
13.7.2 實現
13.7.3 客戶介面函式
13.7.4 伺服器介面server.c
13.7.5 管道
13.7.6 對CD資料庫應用程式的總結
13.8 小結
第14章 訊號量、共享記憶體和訊息佇列
14.1 訊號量
14.1.1 訊號量的定義
14.1.2 一個理論性的例子
14.1.3 Linux的訊號量機制
14.1.4 使用訊號量
14.2 共享記憶體
14.2.1 shmget函式
14.2.2 shmat函式
14.2.3 shmdt
14.2.4 shmctl
14.3 訊息佇列
14.3.1 msgget函式
14.3.2 msgsnd函式
14.3.3 msgrcv函式
14.3.4 msgctl函式
14.4 CD資料庫應用程式
14.4.1 修改伺服器函式
14.4.2 修改客戶函式
14.5 IPC狀態命令
14.5.1 顯示訊號量狀態
14.5.2 顯示共享記憶體狀態
14.5.3 顯示訊息佇列狀態
14.6 小結
第15章 套接字
15.1 什麼是套接字
15.2 套接字連線
15.2.1 套接字屬性
15.2.2 建立套接字
15.2.3 套接字地址
15.2.4 命名套接字
15.2.5 建立套接字佇列
15.2.6 接受連線
15.2.7 請求連線
15.2.8 關閉套接字
15.2.9 套接字通訊
15.2.10 主機位元組序和網路位元組序
15.3 網路資訊
15.3.1 因特網守護程序(xinetd/inetd)
15.3.2 套接字選項
15.4 多客戶
15.4.1 select系統呼叫
15.4.2 多客戶
15.5 資料報
15.6 小結
第16章 用GTK+進行GNOME程式設計
16.1 X視窗系統簡介
16.1.1 X伺服器
16.1.2 X客戶端
16.1.3 X協議
16.1.4 Xlib庫
16.1.5 X工具包
16.1.6 視窗管理器
16.1.7 建立GUI的其他方法——平臺無關的窗囗API
16.2 GTK+簡介
16.2.1 GLib型別系統
16.2.2 GTK+物件系統
16.2.3 GNOME簡介
16.2.4 安裝GNOME/GTK+開發庫
16.3 事件、訊號和回撥函式
16.4 組裝盒構件
16.5 GTK+構件
16.5.1 GtkWindow
16.5.2 GtkEntry
16.5.3 GtkSpinButton
16.5.4 GtkButton
16.5.5 GtkTreeView
16.6 GNOME構件
16.7 GNOME選單
16.8 對話方塊
16.8.1 GtkDialog
16.8.2 模式對話方塊
16.8.3 非模式對話方塊
16.8.4 GtkMessageDialog
16.9 CD資料庫應用程式
16.10 小結
第17章 用Qt進行KDE程式設計
17.1 KDE和Qt簡介
17.2 安裝Qt
17.3 訊號和槽
17.4 Qt構件
17.4.1 QLineEdit
17.4.2 Qt按鈕
17.4.3 QComboBox
17.4.4 QListView
17.5 對話方塊
17.5.1 QDialog
17.5.2 QMessageBox
17.5.3 QInputDialog
17.5.4 使用qmake簡化makefile檔案的編寫
17.6 KDE的選單和工具欄
17.7 使用KDE/Qt編寫CD資料庫應用程式
17.7.1 主視窗
17.7.2 AddCdDialog
17.7.3 LogonDialog
17.7.4 main.cpp
17.8 小結
第18章 Linux標準
18.1 C程式語言
18.1.1 發展歷史簡介
18.1.2 GNU編譯器集
18.1.3 gcc選項
18.2 介面和LSB
18.2.1 LSB標準函式庫
18.2.2 LSB使用者和組
18.2.3 LSB系統初始化
18.3 檔案系統層次結構標準
18.4 更多標準
18.5 小結  

需要IT程式設計經典書籍資源大合集百度網盤連結的加qq 2057904338,另本人願意有償帶小白學python,幫助你答疑解惑,幫助你解決問題,指導你找工作,帶你入行。相信我有人帶著你的話可以少走彎路,成功入行拿高薪。北京地區週六日可上門指導,非北京線上指導。本人前每日優鮮後端工程師,土木專業自學python成功轉行,月薪5位數,性格安靜,誠信正直,想學的加qq。

另閒聊的也可加,就當交個朋友吧!