有人說linux程序設(shè)計(jì)第4版是一本短小精悍,沒有steven高級(jí)編程的事無巨細(xì)的講解,卻非常容易抓住關(guān)鍵點(diǎn)的書。這本書圍繞begining展開,對(duì)Linux程序設(shè)計(jì)里的廣泛領(lǐng)域的大量主題都進(jìn)行了介紹,作為一本linux開發(fā)領(lǐng)域的入門級(jí)和指南性的讀物,強(qiáng)烈推薦那些想要進(jìn)行Linux開發(fā)的菜鳥作為自己的入門拐杖,這本書所探討的主題都具有很高的使用價(jià)值,抓大放小,沒有把初學(xué)者帶入無窮無盡的開發(fā)泥淖中,能夠做到很好的帶路作用,適合作為培訓(xùn)教材使用。每一章都圍繞一個(gè)主題展開,點(diǎn)到即止,每一章又可以通過另外一本書去擴(kuò)展這些主題。該書雖然不如APUE那一類書出名,但作為L(zhǎng)inux初學(xué)者,這本書絕對(duì)是最佳選擇。 本節(jié)內(nèi)容小編為大家奉上的這份Linux程序設(shè)計(jì)為中文第4版,epub格式免費(fèi)高清完整版,歡迎有需要的朋友前來下載查閱這本電子書。
linux程序設(shè)計(jì)第4版內(nèi)容簡(jiǎn)介
《Linux程序設(shè)計(jì)(第4版)》講述了Linux系統(tǒng)及其他IJNIX風(fēng)格的操作系統(tǒng)上的程序開發(fā),主要內(nèi)容包括標(biāo)準(zhǔn)Linux c語言函數(shù)庫(kù)和由不同的Linux或UNIX標(biāo)準(zhǔn)指定的各種工具的使用方法,大多數(shù)標(biāo)準(zhǔn)Linux開發(fā)工具的使用方法,通過DBM和MySQL數(shù)據(jù)庫(kù)系統(tǒng)存儲(chǔ)Linux中的數(shù)據(jù),為x視窗系統(tǒng)建立圖形化用戶界面等!禠inux程序設(shè)計(jì)(第4版)》通過先介紹程序設(shè)計(jì)理論,再以適當(dāng)?shù)睦雍颓逦慕忉寔黻U明它的方式,幫助讀者迅速掌握相關(guān)的知識(shí)。
《Linux程序設(shè)計(jì)(第4版)》適合Linux的初學(xué)者及希望利用Linux進(jìn)行開發(fā)的程序人員閱讀,也適合作為高等院校計(jì)算機(jī)相關(guān)專業(yè)師生的參考教材。
時(shí)至今日,Linux系統(tǒng)已經(jīng)從一個(gè)個(gè)人作品發(fā)展為可以用于各種關(guān)鍵任務(wù)的成熟、高效和穩(wěn)定的操作系統(tǒng),因?yàn)榫邆淇缙脚_(tái)、開源、支持眾多應(yīng)用軟件和網(wǎng)絡(luò)協(xié)議等優(yōu)點(diǎn),它得到了各大主流軟硬件廠商的支持,也成為廣大程序設(shè)計(jì)人員理想的開發(fā)平臺(tái)。
本書是Linux程序設(shè)計(jì)領(lǐng)域的經(jīng)典名著,以簡(jiǎn)單易懂、內(nèi)容全面和示例豐富而受到廣泛好評(píng)。中文版前兩版出版后,在國(guó)內(nèi)的Linux愛好者和程序員中也引起了強(qiáng)烈反響,這一熱潮一直持續(xù)至今。本書是國(guó)內(nèi)讀者翹首以待的第4版,此次新版內(nèi)容組織更加嚴(yán)謹(jǐn),譯者更是細(xì)心雕琢,保留了這部權(quán)威著作的原汁原味。
對(duì)Linux所提供的功能全面而準(zhǔn)確的闡述,以及貫穿全書的示例程序體驗(yàn),使本書不僅成為初學(xué)者的最佳Linux程序設(shè)計(jì)指南,而且是中高級(jí)程序員不可或缺的參考書。
linux程序設(shè)計(jì)第4版目錄
第1章 入門
1.1 UNIX、Linux和GNU簡(jiǎn)介
1.1.1 什么是UNIX
1.1.2 什么是Linux
1.1.3 GNU項(xiàng)目和自由軟件基金會(huì)
1.1.4 Linux發(fā)行版
1.2 Linux程序設(shè)計(jì)
1.2.1 Linux程序
1.2.2 文本編輯器
1.2.3 C語言編譯器
1.2.4 開發(fā)系統(tǒng)導(dǎo)引
1.3 獲得幫助
1.4 小結(jié)
第2章 shell程序設(shè)計(jì)
2.1 為什么使用shell編程
2.2 一點(diǎn)哲學(xué)
2.3 什么是shell
2.4 管道和重定向
2.4.1 重定向輸出
2.4.2 重定向輸入
2.4.3 管道
2.5 作為程序設(shè)計(jì)語言的shell
2.5.1 交互式程序
2.5.2 創(chuàng)建腳本
2.5.3 把腳本設(shè)置為可執(zhí)行
2.6 shell的語法
2.6.1 變量
2.6.2 條件
2.6.3 控制結(jié)構(gòu)
2.6.4 函數(shù)
2.6.5 命令
2.6.6 命令的執(zhí)行
2.6.7 here文檔
2.6.8 調(diào)試腳本程序
2.7 邁向圖形化:dialog工具
2.8 綜合應(yīng)用
2.8.1 需求
2.8.2 設(shè)計(jì)
2.8.3 應(yīng)用程序的說明
2.9 小結(jié)
第3章 文件操作
3.1 Linux文件結(jié)構(gòu)
3.1.1 目錄
3.1.2 文件和設(shè)備
3.2 系統(tǒng)調(diào)用和設(shè)備驅(qū)動(dòng)程序
3.3 庫(kù)函數(shù)
3.4 底層文件訪問
3.4.1 write系統(tǒng)調(diào)用
3.4.2 read系統(tǒng)調(diào)用
3.4.3 open系統(tǒng)調(diào)用
3.4.4 訪問權(quán)限的初始值
3.4.5 其他與文件管理有關(guān)的系統(tǒng)調(diào)用
3.5 標(biāo)準(zhǔn)I/O庫(kù)
3.5.1 fopen函數(shù)
3.5.2 fread函數(shù)
3.5.3 fwrite函數(shù)
3.5.4 fclose函數(shù)
3.5.5 fflush函數(shù)
3.5.6 fseek函數(shù)
3.5.7 fgetc、getc和getchar函數(shù)
3.5.8 fputc、putc和putchar函數(shù)
3.5.9 fgets和gets函數(shù)
3.6 格式化輸入和輸出
3.6.1 printf、fprintf和sprintf函數(shù)
3.6.2 scanf、fscanf和sscanf函數(shù)
3.6.3 其他流函數(shù)
3.6.4 文件流錯(cuò)誤
3.6.5 文件流和文件描述符
3.7 文件和目錄的維護(hù)
3.7.1 chmod系統(tǒng)調(diào)用
3.7.2 chown系統(tǒng)調(diào)用
3.7.3 unlink、link和symlink系統(tǒng)調(diào)用
3.7.4 mkdir和rmdir系統(tǒng)調(diào)用
3.7.5 chdir系統(tǒng)調(diào)用和getcwd函數(shù)
3.8 掃描目錄
3.8.1 opendir函數(shù)
3.8.2 readdir函數(shù)
3.8.3 telldir函數(shù)
3.8.4 seekdir函數(shù)
3.8.5 closedir函數(shù)
3.9 錯(cuò)誤處理
3.9.1 strerror函數(shù)
3.9.2 perror函數(shù)
3.10 /proc文件系統(tǒng)
3.11 高級(jí)主題:fcntl和mmap
3.11.1 fcntl系統(tǒng)調(diào)用
3.11.2 mmap函數(shù)
3.12 小結(jié)
第4章 Linux環(huán)境
4.1 程序參數(shù)
4.1.1 getopt
4.1.2 getopt_long
4.2 環(huán)境變量
4.2.1 環(huán)境變量的用途
4.2.2 environ變量
4.3 時(shí)間和日期
4.4 臨時(shí)文件
4.5 用戶信息
4.6 主機(jī)信息
4.7 日志
4.8 資源和限制
4.9 小結(jié)
第5章 終端
5.1 對(duì)終端進(jìn)行讀寫
5.2 與終端進(jìn)行對(duì)話
5.3 終端驅(qū)動(dòng)程序和通用終端接口
5.3.1 概述
5.3.2 硬件模型
5.4 termios結(jié)構(gòu)
5.4.1 輸入模式
5.4.2 輸出模式
5.4.3 控制模式
5.4.4 本地模式
5.4.5 特殊控制字符
5.4.6 終端速度
5.4.7 其他函數(shù)
5.5 終端的輸出
5.5.1 終端的類型
5.5.2 識(shí)別終端類型
5.5.3 使用terminfo功能標(biāo)志
5.6 檢測(cè)擊鍵動(dòng)作
5.7 虛擬控制臺(tái)
5.8 偽終端
5.9 小結(jié)
第6章 使用curses函數(shù)庫(kù)管理基于文本的屏幕
6.1 用curses函數(shù)庫(kù)進(jìn)行編譯
6.2 curses術(shù)語和概念
6.3 屏幕
6.3.1 輸出到屏幕
6.3.2 從屏幕讀取
6.3.3 清除屏幕
6.3.4 移動(dòng)光標(biāo)
6.3.5 字符屬性
6.4 鍵盤
6.4.1 鍵盤模式
6.4.2 鍵盤輸入
6.5 窗口
6.5.1 WINDOW結(jié)構(gòu)
6.5.2 通用函數(shù)
6.5.3 移動(dòng)和更新窗口
6.5.4 優(yōu)化屏幕刷新
6.6 子窗口
6.7 keypad模式
6.8 彩色顯示
6.9 pad
6.10 CD唱片應(yīng)用程序
6.10.1 新CD唱片應(yīng)用程序的開始部分
6.10.2 main函數(shù)
6.10.3 建立菜單
6.10.4 操作數(shù)據(jù)庫(kù)文件
6.10.5 查詢CD數(shù)據(jù)庫(kù)
6.11 小結(jié)
第7章 數(shù)據(jù)管理
7.1 內(nèi)存管理
7.1.1 簡(jiǎn)單的內(nèi)存分配
7.1.2 分配大量的內(nèi)存
7.1.3 濫用內(nèi)存
7.1.4 空指針
7.1.5 釋放內(nèi)存
7.1.6 其他內(nèi)存分配函數(shù)
7.2 文件鎖定
7.2.1 創(chuàng)建鎖文件
7.2.2 區(qū)域鎖定
7.2.3 鎖定狀態(tài)下的讀寫操作
7.2.4 文件鎖的競(jìng)爭(zhēng)
7.2.5 其他鎖命令
7.2.6 死鎖
7.3 數(shù)據(jù)庫(kù)
7.3.1 dbm數(shù)據(jù)庫(kù)
7.3.2 dbm例程
7.3.3 dbm訪問函數(shù)
7.3.4 其他dbm函數(shù)
7.4 CD唱片應(yīng)用程序
7.4.1 更新設(shè)計(jì)
7.4.2 使用dbm數(shù)據(jù)庫(kù)的CD唱片應(yīng)用程序
7.5 小結(jié)
第8章 MySQL
8.1 安裝
8.1.1 MySQL軟件包
8.1.2 安裝后的配置
8.1.3 安裝后的故障修復(fù)
8.2 MySQL管理
8.2.1 命令
8.2.2 創(chuàng)建用戶并賦予權(quán)限
8.2.3 密碼
8.2.4 創(chuàng)建數(shù)據(jù)庫(kù)
8.2.5 數(shù)據(jù)類型
8.2.6 創(chuàng)建表
8.2.7 圖形化工具
8.3 使用C語言訪問MySQL數(shù)據(jù)
8.3.1 連接例程
8.3.2 錯(cuò)誤處理
8.3.3 執(zhí)行SQL語句
8.3.4 更多的函數(shù)
8.4 CD數(shù)據(jù)庫(kù)應(yīng)用程序
8.4.1 創(chuàng)建表
8.4.2 添加數(shù)據(jù)
8.4.3 使用C語言訪問數(shù)據(jù)
8.5 小結(jié)
第9章 開發(fā)工具
9.1 多個(gè)源文件帶來的問題
9.2 make命令和makefile文件
9.2.1 makefile的語法
9.2.2 make命令的選項(xiàng)和參數(shù)
9.2.3 makefile文件中的注釋
9.2.4 makefile文件中的宏
9.2.5 多個(gè)目標(biāo)
9.2.6 內(nèi)置規(guī)則
9.2.7 后綴和模式規(guī)則
9.2.8 用make管理函數(shù)庫(kù)
9.2.9 高級(jí)主題: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 編寫手冊(cè)頁
9.5 發(fā)行軟件
9.5.1 patch程序
9.5.2 其他軟件發(fā)行工具
9.6 RPM軟件包
9.6.1 使用RPM軟件包文件
9.6.2 安裝RPM軟件包
9.6.3 創(chuàng)建RPM軟件包
9.7 其他軟件包格式
9.8 開發(fā)環(huán)境
9.8.1 KDevelop
9.8.2 其他開發(fā)環(huán)境
9.9 小結(jié)
第10章 調(diào)試
10.1 錯(cuò)誤類型
10.2 常用調(diào)試技巧
10.2.1 有漏洞的程序
10.2.2 代碼檢查
10.2.3 取樣法
10.2.4 程序的受控執(zhí)行
10.3 使用gdb進(jìn)行調(diào)試
10.3.1 啟動(dòng)gdb
10.3.2 運(yùn)行一個(gè)程序
10.3.3 棧跟蹤
10.3.4 檢查變量
10.3.5 列出程序源代碼
10.3.6 設(shè)置斷點(diǎn)
10.3.7 用調(diào)試器打補(bǔ)丁
10.3.8 深入學(xué)習(xí)gdb
10.4 其他調(diào)試工具
10.4.1 lint:清理程序中的“垃圾”
10.4.2 函數(shù)調(diào)用工具
10.4.3 用prof/gprof產(chǎn)生執(zhí)行存檔
10.5 斷言
10.6 內(nèi)存調(diào)試
10.6.1 ElectricFence函數(shù)庫(kù)
10.6.2 valgrind
10.7 小結(jié)
第11章 進(jìn)程和信號(hào)
11.1 什么是進(jìn)程
11.2 進(jìn)程的結(jié)構(gòu)
11.2.1 進(jìn)程表
11.2.2 查看進(jìn)程
11.2.3 系統(tǒng)進(jìn)程
11.2.4 進(jìn)程調(diào)度
11.3 啟動(dòng)新進(jìn)程
11.3.1 等待一個(gè)進(jìn)程
11.3.2 僵尸進(jìn)程
11.3.3 輸入和輸出重定向
11.3.4 線程
11.4 信號(hào)
11.4.1 發(fā)送信號(hào)
11.4.2 信號(hào)集
11.5 小結(jié)
第12章 POSIX線程
12.1 什么是線程
12.2 線程的優(yōu)點(diǎn)和缺點(diǎn)
12.3 第一個(gè)線程程序
12.4 同時(shí)執(zhí)行
12.5 同步
12.5.1 用信號(hào)量進(jìn)行同步
12.5.2 用互斥量進(jìn)行同步
12.6 線程的屬性
12.7 取消一個(gè)線程
12.8 多線程
12.9 小結(jié)
第13章 進(jìn)程間通信:管道
13.1 什么是管道
13.2 進(jìn)程管道
13.3 將輸出送往popen
13.3.1 傳遞更多的數(shù)據(jù)
13.3.2 如何實(shí)現(xiàn)popen
13.4 pipe調(diào)用
13.5 父進(jìn)程和子進(jìn)程
13.5.1 管道關(guān)閉后的讀操作
13.5.2 把管道用作標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出
13.6 命名管道:FIFO
13.6.1 訪問FIFO文件
13.6.2 高級(jí)主題:使用FIFO的客戶/服務(wù)器應(yīng)用程序
13.7 CD數(shù)據(jù)庫(kù)應(yīng)用程序
13.7.1 目標(biāo)
13.7.2 實(shí)現(xiàn)
13.7.3 客戶接口函數(shù)
13.7.4 服務(wù)器接口server.c
13.7.5 管道
13.7.6 對(duì)CD數(shù)據(jù)庫(kù)應(yīng)用程序的總結(jié)
13.8 小結(jié)
第14章 信號(hào)量、共享內(nèi)存和消息隊(duì)列
14.1 信號(hào)量
14.1.1 信號(hào)量的定義
14.1.2 一個(gè)理論性的例子
14.1.3 Linux的信號(hào)量機(jī)制
14.1.4 使用信號(hào)量
14.2 共享內(nèi)存
14.2.1 shmget函數(shù)
14.2.2 shmat函數(shù)
14.2.3 shmdt
14.2.4 shmctl
14.3 消息隊(duì)列
14.3.1 msgget函數(shù)
14.3.2 msgsnd函數(shù)
14.3.3 msgrcv函數(shù)
14.3.4 msgctl函數(shù)
14.4 CD數(shù)據(jù)庫(kù)應(yīng)用程序
14.4.1 修改服務(wù)器函數(shù)
14.4.2 修改客戶函數(shù)
14.5 IPC狀態(tài)命令
14.5.1 顯示信號(hào)量狀態(tài)
14.5.2 顯示共享內(nèi)存狀態(tài)
14.5.3 顯示消息隊(duì)列狀態(tài)
14.6 小結(jié)
第15章 套接字
15.1 什么是套接字
15.2 套接字連接
15.2.1 套接字屬性
15.2.2 創(chuàng)建套接字
15.2.3 套接字地址
15.2.4 命名套接字
15.2.5 創(chuàng)建套接字隊(duì)列
15.2.6 接受連接
15.2.7 請(qǐng)求連接
15.2.8 關(guān)閉套接字
15.2.9 套接字通信
15.2.10 主機(jī)字節(jié)序和網(wǎng)絡(luò)字節(jié)序
15.3 網(wǎng)絡(luò)信息
15.3.1 因特網(wǎng)守護(hù)進(jìn)程(xinetd/inetd)
15.3.2 套接字選項(xiàng)
15.4 多客戶
15.4.1 select系統(tǒng)調(diào)用
15.4.2 多客戶
15.5 數(shù)據(jù)報(bào)
15.6 小結(jié)
第16章 用GTK+進(jìn)行GNOME編程
16.1 X視窗系統(tǒng)簡(jiǎn)介
16.1.1 X服務(wù)器
16.1.2 X客戶端
16.1.3 X協(xié)議
16.1.4 Xlib庫(kù)
16.1.5 X工具包
16.1.6 窗口管理器
16.1.7 創(chuàng)建GUI的其他方法——平臺(tái)無關(guān)的窗囗API
16.2 GTK+簡(jiǎn)介
16.2.1 GLib類型系統(tǒng)
16.2.2 GTK+對(duì)象系統(tǒng)
16.2.3 GNOME簡(jiǎn)介
16.2.4 安裝GNOME/GTK+開發(fā)庫(kù)
16.3 事件、信號(hào)和回調(diào)函數(shù)
16.4 組裝盒構(gòu)件
16.5 GTK+構(gòu)件
16.5.1 GtkWindow
16.5.2 GtkEntry
16.5.3 GtkSpinButton
16.5.4 GtkButton
16.5.5 GtkTreeView
16.6 GNOME構(gòu)件
16.7 GNOME菜單
16.8 對(duì)話框
16.8.1 GtkDialog
16.8.2 模式對(duì)話框
16.8.3 非模式對(duì)話框
16.8.4 GtkMessageDialog
16.9 CD數(shù)據(jù)庫(kù)應(yīng)用程序
16.10 小結(jié)
第17章 用Qt進(jìn)行KDE編程
17.1 KDE和Qt簡(jiǎn)介
17.2 安裝Qt
17.3 信號(hào)和槽
17.4 Qt構(gòu)件
17.4.1 QLineEdit
17.4.2 Qt按鈕
17.4.3 QComboBox
17.4.4 QListView
17.5 對(duì)話框
17.5.1 QDialog
17.5.2 QMessageBox
17.5.3 QInputDialog
17.5.4 使用qmake簡(jiǎn)化makefile文件的編寫
17.6 KDE的菜單和工具欄
17.7 使用KDE/Qt編寫CD數(shù)據(jù)庫(kù)應(yīng)用程序
17.7.1 主窗口
17.7.2 AddCdDialog
17.7.3 LogonDialog
17.7.4 main.cpp
17.8 小結(jié)
第18章 Linux標(biāo)準(zhǔn)
18.1 C編程語言
18.1.1 發(fā)展歷史簡(jiǎn)介
18.1.2 GNU編譯器集
18.1.3 gcc選項(xiàng)
18.2 接口和LSB
18.2.1 LSB標(biāo)準(zhǔn)函數(shù)庫(kù)
18.2.2 LSB用戶和組
18.2.3 LSB系統(tǒng)初始化
18.3 文件系統(tǒng)層次結(jié)構(gòu)標(biāo)準(zhǔn)
18.4 更多標(biāo)準(zhǔn)
18.5 小結(jié)
linux程序設(shè)計(jì)第4版內(nèi)容截圖
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版