第1章LinuxC程序概論
1.1Linux簡介
1.1.1為什么選擇Linux
1.1.2為什么選擇C語言
1.2開發(fā)第一個程序
1.3怎樣獲取幫助信息
1.3.1使用man命令
1.3.2指定man的搜索路徑
1.3.3一個小技巧
1.4LinuxC程序的框架
1.4.1關(guān)于程序的存放目錄
1.4.2頭文件
1.4.3函數(shù)庫
1.4.4靜態(tài)函數(shù)庫
1.4.5共享函數(shù)庫
1.5一些公理
第2章文件操作
2.1Linux文件結(jié)構(gòu)
2.1.1文件與目錄
2.1.2文件與設(shè)備
2.2系統(tǒng)調(diào)用和設(shè)備驅(qū)動程序
2.3庫函數(shù)
2.4低級文件操作
2.4.1write
2.4.2read
2.4.3open
2.4.4umask
2.4.5close
2.4.6ioctl
2.4.7例子程序copy-file
2.4.8其他與文件操作有關(guān)的系統(tǒng)調(diào)用
2.5標(biāo)準(zhǔn)輸入輸出庫
2.5.1fopen
2.5.2fread
2.5.3fwrite
2.5.4fclose
2.5.5fflush
2.5.6fseek
2.5.7fgetc,getc,getchar
2.5.8fputc,putc,putchar
2.5.9fgets,gets
2.5.10格式輸入輸出
2.5.11其他流操作函數(shù)
2.5.12流錯誤信息
2.5.13流與文件描述符
2.6一些與文件有關(guān)的函數(shù)
2.6.1chmod
2.6.2chown
2.6.3unlink,link,symlink
2.6.4mkdir,rmdir
2.6.5chdir,getcwd
2.6.6錯誤信息
2.7搜索路徑的例子程序
2.7.1opendir
2.7.2readdir
2.7.3telldir
2.7.4seekdir
2.7.5closedir
2.7.6例子程序show_dir
2.8兩個特殊的函數(shù)
2.8.1fcntl
2.8.2mmap
第3章環(huán)境變量
3.1程序的參數(shù)
3.1.1程序的參數(shù)
3.1.2環(huán)境變量
3.1.3獲取全部的環(huán)境變量
3.2時間和日期
3.2.1time
3.2.2gmtime,ctime
3.2.3strftime,strptime
3.3臨時文件
3.4主機(jī)信息
3.4.1用戶信息
3.4.2主機(jī)信息
3.5系統(tǒng)日志
3.5.1日志函數(shù)
3.5.2配置日志
3.6資源和限制
第4章屏幕開發(fā)庫curses
4.1curses簡介
4.2基本的屏幕輸出函數(shù)
4.2.1初始化和終止
4.2.2輸出
4.2.3讀入
4.2.4清屏
4.2.5移動
4.2.6字符屬性
4.3響應(yīng)鍵盤事件
4.3.1鍵盤模式
4.3.2讀取鍵盤
4.4多窗口
4.4.1WINDOW結(jié)構(gòu)
4.4.2移動和更新窗口
4.4.3刷新屏幕的優(yōu)化方法
4.5子窗口
4.6keypad函數(shù)
4.7顏色
4.8高級應(yīng)用:虛屏
4.9curses的幫助
第6章 數(shù)據(jù)管理
5.1內(nèi)存管理
5.1.1簡單的內(nèi)存分配
5.1.2分配大量的內(nèi)存
5.1.3空指針
5.1.4 釋放內(nèi)存
5.1.5其他分配內(nèi)存的函數(shù)
5.2文件鎖
5.2.1創(chuàng)建加鎖文件
5,2.2區(qū)域加鎖
5.2.3加鎖之后的讀寫
5.2.4競爭加鎖
5.2.5其他加鎖函數(shù)
5.2.6死鎖
5.3DBM數(shù)據(jù)庫
5.3.1DBM數(shù)據(jù)庫
5.3.2dbm程序
5.3.3dbm基本函數(shù)
5.3.4其他dbm函數(shù)
第6章開發(fā)工具箱
6.1make命令和Makefile文件
6.1.1多文件的編譯問題
6.1.2Makefile文件的構(gòu)成
6.1.3make命令的參數(shù)選項(xiàng)
6.1.4依賴關(guān)系
6.1.5依賴規(guī)則
6.1.6Makefile文件的注釋
6.1.7Makefile文件的宏
6.1.8多目標(biāo)
6.1.9固定規(guī)則與后綴規(guī)則
6.1.10使用make管理函數(shù)庫
6.1.11makefile文件和子目錄
6.1.12GNU的make和gcc
6.2源代碼控制
6.2.1RCS
6.2.2SCCS
6.3怎樣寫幫助文件
6.4程序維護(hù)的一些問題
6.4.1發(fā)布軟件
6.4.2給程序打補(bǔ)丁
6.4.3其他維護(hù)工具
6.4.4tar命令的描述
第7章如何調(diào)試程序
7.1錯誤類型
7.1.1需求錯誤
7.1.2設(shè)計錯誤
7.1.3編碼錯誤
7.2調(diào)試前的準(zhǔn)備工作
7.2.1一個含有錯誤的程序
7.2.2 代碼檢查
7.2.3輸出附加信息
7.2.4不需要重新編譯的技巧
7.2.5跟蹤程序的執(zhí)行
7.3使用gdb
7.3.1啟動gdb
7.3.2執(zhí)行程序
7.3.3堆棧跟蹤
7.3.4檢查變量
7.3.5查看源程序
7.3.6設(shè)置斷點(diǎn)
7.3.7在調(diào)試器中打補(bǔ)丁
7.3.8關(guān)于gdb的其他功能
7.4其他調(diào)試工具
7.4.1不可忽略的警告
7.4.2函數(shù)查看工具
7.4.3監(jiān)管程序的執(zhí)行
7.4.4變量范圍聲明
7.4.5內(nèi)存越界檢查
第8章進(jìn)程與信號
8.1什么是進(jìn)程
8.2 進(jìn)程的結(jié)構(gòu)
8.2.1進(jìn)程中的共享與獨(dú)占
8.2.2進(jìn)程表
8.3 創(chuàng)建新進(jìn)程
8.4信號
8.4.1如何捕捉信號
8.4.2發(fā)送信號
8.4.3信號集合
8.4.4功能強(qiáng)大的sigaction函數(shù)
第9章 管道
9.1 什么是管道
9.2 進(jìn)程管道
9.2.1接收與發(fā)送數(shù)據(jù)
9.2.2 操作大量的數(shù)據(jù)
9.2.3popen是如何實(shí)現(xiàn)的
9.3pipe函數(shù)
9.4在父.子進(jìn)程中使用管道
9.4.1利用命令行參數(shù)
9.4.2讀關(guān)閉的管道
9.4.3使用標(biāo)準(zhǔn)輸入輸出端口
9.5有名管道--FIFO
9.5.1創(chuàng)建有名管道
9.5.2訪問有名管道
9.5.3使用open打開有名管道
9.5.4對FIFO的讀寫
9.6Client/Server模式下的FIFO
第10章IPC機(jī)制
10.1信號量
10.1.1信號量的定義
10.1.2一個理論的例子
10.1.3UNIX信號量函數(shù)
10.2共享內(nèi)存
10.2.1概要介紹
10.2.2共享內(nèi)存函數(shù)
10.2.3例子程序
10.3消息隊列
10.3.1概要介紹
10.3.2消息隊列函數(shù)
10.3.3例子程序
10.4IPC外部命令
10.4.1信號量
10.4.2共享內(nèi)存
10.4.3消息隊列
第11章套接口
11.1概要
11.1.1套接口的連接
11.1.2套接口屬性
11.2套接口函數(shù)
11.2.1創(chuàng)建套接口
11.2.2套接口地址
11.2.3給套接口命名
11.2.4建立監(jiān)聽隊列
11.2.5接受連接
11.2.6建立連接請求
11.2.7關(guān)閉套接口
11.2.8套接口通信
11.2.9主機(jī)和網(wǎng)絡(luò)字節(jié)順序
11.3網(wǎng)絡(luò)信息
11.3.1主機(jī)信息
11.3.2服務(wù)信息
11.4套接口選項(xiàng)
11.5多客戶
11.6select函數(shù)
11.6.1函數(shù)介紹
11.6.2終端上的應(yīng)用
11.6.3多客戶套接口連接的應(yīng)用
11.7inetd的秘密
11.8UDP通信簡介
第12章Linux下的CGI
12.1概述
12.2一些相關(guān)的HTML標(biāo)記
12.2.1FORM元件
12.2.2FORM標(biāo)記
12.2.3INPUT標(biāo)記
12.3一個簡單的主頁
12.4向WWW服務(wù)器發(fā)送信息
12.5如何編寫CGI程序
12.5.1相關(guān)的環(huán)境變量
12.5.2使用shell編寫CGI程序
12.5.3如何使用C開發(fā)CGI程序
12.5.4使用Perl開發(fā)CGI程序
12.6以HTML格式反饋客戶
12.7幾個技巧和注意事項(xiàng)
12.7.1確認(rèn)CGI程序已經(jīng)退出
12.7.2重定向客戶
12.7.3動態(tài)圖片
12.7.4編寫小程序
附錄A開發(fā)MySQL應(yīng)用程序
I簡介
Ⅱ 創(chuàng)建庫和表
Ⅲ 向表中增加記錄
Ⅳ 查看表中數(shù)據(jù)
附錄B使用Libpcap函數(shù)庫
Ⅰ簡介
Ⅱ 幾個重要的API
Ⅲ 一個例子程序
Ⅳ 其他API的介紹