注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)操作系統(tǒng)UNIXUNIX高級編程

UNIX高級編程

UNIX高級編程

定 價:¥64.00

作 者: (美)Warren W.Gay著;瀟湘工作室譯
出版社: 人民郵電出版社
叢編項: 計算機技術(shù)譯林精選系列
標(biāo) 簽: UNIX操作系統(tǒng) 程序設(shè)計

ISBN: 9787115091505 出版時間: 2001-01-01 包裝: 平裝
開本: 26cm 頁數(shù): 620 字?jǐn)?shù):  

內(nèi)容簡介

  本書詳盡地介紹了UNIX系統(tǒng)編程的高級技術(shù)。通過本書的學(xué)習(xí),讀者將能夠充分利用標(biāo)準(zhǔn)的UNIX開發(fā)工具,掌握UNIX操作系統(tǒng)的內(nèi)部工作方式,包括文件系統(tǒng)的內(nèi)部操作以及大量UNIX函數(shù)的正確使用方法和技巧。本書詳細(xì)說明了內(nèi)部處理技術(shù)、進(jìn)程間控制以及通過信號、分支進(jìn)程和共享內(nèi)存進(jìn)行同步的方法。另外,本書還提供了大量的代碼實例,這些實例涉及到用戶同時訪問文件的技巧、改變目錄結(jié)構(gòu)以及動態(tài)更改用戶的組參數(shù)的方法。本書適用于UNIX專業(yè)程序員。

作者簡介

暫缺《UNIX高級編程》作者簡介

圖書目錄

第一部分 文件和目錄
第1章 編譯程序注釋和選項 
1.1 在線手冊頁 
1.2 本書使用的手冊索引 
1.2.1 Internet上的man(1)資源 
1.3 本書的實例代碼 
1.4 編譯C程序 
1.4.1 C編譯命令 
1.5 管理編譯程序警告 
1.5.1 利用編譯程序警告信息 
1.6 編譯標(biāo)準(zhǔn) 
1.6.1 FreeBSD 3.4-Realease特征測試 
1.6.2 HPUX 10.2特征測試 
1.6.3 AIX 4.3特征測試 
1.6.4 SunOS 5.6特征測試 
1.6.5 特征測試總結(jié) 
1.7 小結(jié) 
第2章 UNIX文件系統(tǒng)對象 
2.1 文件系統(tǒng)對象 
2.1.1 常規(guī)文件 
2.1.2 目錄 
2.1.3 塊設(shè)備 
2.1.4 字符設(shè)備 
2.1.5 有名管道(FiFos) 
2.1.6 套接口 
2.1.7 符號鏈接 
2.1.8 特殊文件 
2.2 權(quán)限 
2.2.1 常規(guī)文件的訪問 
2.2.2 目錄的訪問 
2.3 使用UNIX文件 
2.3.1 打開和關(guān)閉文件 
2.3.2 打開特殊文件 
2.3.3 使用套接口 
2.3.4 復(fù)制文件描述符 
2.3.5 改變標(biāo)準(zhǔn)輸入
2.4 UNIX文件I/O 
2.5 小結(jié) 
第3章 錯誤處理和報告 
3.1 確定是成功還是失敗 
3.1.1 出錯指示的一般規(guī)則 
3.1.2 一般規(guī)則的例外 
3.1.3 成功返回值的分類 
3.1.4 其他返回指示 
3.2 確定失敗的原因 
3.3 原來的errno值 
3.3.1 按名稱引用錯誤代碼 
3.3.2 正確使用errno 
3.4 新的errno值 
3.4.1 聲明新的errno值 
3.4.2 使用新的errno 值 
3.5 報告errno值 
3.5.1 使用perrno(3)值 
3.5.2 使用sys_errlist[]數(shù)組 
3.5.3 strerror(3)函數(shù) 
3.6 使用stdio(3)測試錯誤 
3.6.1 函數(shù)ferror(3)的缺陷 
3.6.2 避免fclose(3)的缺陷 
3.6.3 推遲錯誤報告 
3.7 小結(jié) 
第4章 UNIX輸入和輸出 
4.1 umask(2)函數(shù)和umask位 
4.1.1 權(quán)限位 
4.1.2 理解對umask的需要 
4.1.3 理解umask的作用域 
4.1.4 使用umask(2)函數(shù) 
4.1.5 使用umask值的例子 
4.1.6 umask(2) 函數(shù) 
4.1.7 create(2)函數(shù) 
4.2 讀和寫 
4.2.1 read(2) 和write(2)初步 
4.2.2 使用UNIX I/O 
4.3 文件內(nèi)查找 
4.3.1 使用lseek(2) 
4.4 截取文件 
4.5 稀疏文件 
4.5.1 創(chuàng)建稀疏文件 
4.6 強迫把數(shù)據(jù)寫到媒介上 
4.6.1 sync(2)函數(shù) 
4.6.2 sync(2)的缺點 
4.6.3 fsync(2)函數(shù) 
4.7 分散讀寫 
4.7.1 readv(2)和 writev(2)函數(shù) 
4.8 確定tty名稱 
4.9 小結(jié) 
第5章 文件上鎖 
5.1 理解上鎖類型 
5.1.1 文件上鎖技術(shù) 
5.1.2 文件上鎖的限制 
5.1.3 在整個文件中使用勸告性上鎖 
5.1.4 使用flock(2)上鎖 
5.2 記錄上鎖 
5.2.1 使用lockf(2)上鎖 
5.3 使用fcntl(2)實現(xiàn)POSIX上鎖 
5.3.1 初始化struct flock 
5.3.2 上鎖一個區(qū)域 
5.3.3 解鎖區(qū)域 
5.3.4 獲得上鎖信息 
5.4 強制性上鎖 
5.4.1 啟用強制性上鎖 
5.5 小結(jié) 
第6章 管理文件及其屬性 
6.1 清除文件 
6.2 鏈接文件 
6.3 移動文件 
6.4 獲取文件系統(tǒng)信息 
6.4.1 函數(shù)stat(2) 
6.4.2 函數(shù)fstat(2) 
6.4.3 使用文件屬性 
6.4.4 測試文件類型 
6.4.5 修改、訪問及創(chuàng)建時間 
6.5 測試文件的訪問權(quán)限 
6.6 符號鏈接 
6.6.1 函數(shù)symlink(2) 
6.6.2 函數(shù)lstat(2) 
6.6.3 利用readlink(2) 讀取符號鏈接的內(nèi)容 
6.7 文件權(quán)限和所有權(quán) 
6.7.1 改變權(quán)限 
6.7.2 改變所有權(quán) 
6.8 有名管道(FIFO) 
6.9 獲得尺寸和配置信息 
6.10 小結(jié) 
第7章 目錄管理 
7.1 獲得工作目錄 
7.1.1 指定空緩沖區(qū)參數(shù) 
7.2 改變當(dāng)前目錄 
7.2.1 保存當(dāng)前目錄 
7.2.2 fchdir(2)的局限性 
7.3 建立新目錄 
7.4 刪除目錄 
7.5 打開目錄進(jìn)行搜索 
7.6 關(guān)閉目錄 
7.7 搜索目錄 
7.8 重新回到目錄的開始 
7.9 保存目錄中的位置 
7.10 在目錄內(nèi)恢復(fù)位置 
7.11 掃描目錄 
7.11.1 為scandir(3)聲明自己的select 函數(shù) 
7.11.2 為scandir(3)聲明自己的compar函數(shù) 
7.11.3 sysV 變體 
7.11.4 scandir(3)實例 
7.12 遍歷目錄結(jié)構(gòu) 
7.13 改變根目錄
7.14 小結(jié) 
第8章 臨時目錄和處理清除 
8.1 創(chuàng)建臨時文件 
8.1.1 使用函數(shù)tmpnam(3) 
8.1.2 使用函數(shù)mktemp(3) 
8.1.3 使用函數(shù)mkstemp(3) 
8.1.4 使用函數(shù)mkstemps(3)
8.1.5 使用函數(shù)tmpfile(3) 
8.1.6 使用函數(shù)tempnam(3) 
8.2 使文件為臨時文件 
8.2.1 使用unlink(2)使文件為臨時文件 
8.2.2 退出清除 
8.2.3 使用atexit(3) 函數(shù) 
8.2.4 使用C++析構(gòu)函數(shù) 
8.2.5 利用_exit(2)避免清除 
8.3 小結(jié) 
第二部分 庫函數(shù)
第9章 UNIX命令行處理 
9.1 命令行約定 
9.1.1 使用多個選項 
9.1.2 組合多個選項 
9.1.3 使用帶有參數(shù)的選項 
9.1.4 識別選項或參數(shù) 
9.2 選項參數(shù) 
9.3 函數(shù)getopt(3) 
9.3.1 getopt(3)外部值 
9.3.2 getopt(3)函數(shù)調(diào)用 
9.3.3 定義optstring 參數(shù) 
9.3.4 定義選項處理循環(huán) 
9.4 函數(shù)getsubopt(3) 
9.4.1 確定子選項處理的結(jié)束 
9.4.2 getsubopt(3)的完整例子 
9.5 GNU長選項擴展 
9.5.1 GNU getopt_long(3)函數(shù) 
9.5.2 理解option結(jié)構(gòu) 
9.5.3 建立option結(jié)構(gòu) 
9.5.4 使用空的option.flag指針 
9.5.5 使用非空option.flag 指針 
9.6 小結(jié) 
第10章 轉(zhuǎn)換函數(shù) 
10.1 簡單的轉(zhuǎn)換函數(shù) 
10.1.1 細(xì)查函數(shù)atoi(3) 和atol(3) 
10.1.2 atof(3)函數(shù) 
10.2 使用sscanf(3)轉(zhuǎn)換和驗證 
10.2.1 把sscanf(3)應(yīng)用到數(shù)值轉(zhuǎn)換 
10.2.2 使用sscanf(3) 測試數(shù)值轉(zhuǎn)換 
10.2.3 改進(jìn)sscanf(3)轉(zhuǎn)換 
10.2.4 sscanf(3)的局限性 
10.3 函數(shù)strtol(3)和strtoul(3) 
10.3.1 使用strtol(3)函數(shù) 
10.3.2 出錯測試 
10.3.3 測試轉(zhuǎn)換指針
10.3.4 多項轉(zhuǎn)換 
10.3.5 使用base參數(shù)進(jìn)行基數(shù)轉(zhuǎn)換 
10.3.6 測試溢出和下溢 
10.3.7 測試strtoul(3)溢出 
10.4 大整數(shù)轉(zhuǎn)換 
10.5 BSD的strtoq(3)和strtouq(3)函數(shù) 
10.6 strtod(3)函數(shù) 
10.6.1 使用strtod(3)函數(shù) 
10.6.2 測試算術(shù)錯誤 
10.6.3 算術(shù)錯誤測試的流程 
10.7 小結(jié) 
第11章 UNIX日期和時間機制 
11.1 時區(qū) 
11.1.1 世界時間標(biāo)準(zhǔn)初步 
11.2 定義日期和時間數(shù)據(jù)類型 
11.3 時間轉(zhuǎn)換函數(shù) 
11.3.1 使用ctime(3)把時間轉(zhuǎn)換為串形式 
11.3.2 函數(shù)ctime_r(3) 
11.3.3 函數(shù)localtime(3) 和gmtime(3) 
11.3.4 struct tm的成員 
11.3.5 使用函數(shù)asctime(3)把日期/時間成份轉(zhuǎn)換成串 
11.3.6 函數(shù)tzset(3) 
11.3.7 利用函數(shù)mktime(3)創(chuàng)建Epoch時間 
11.4 用strftime(3)定制日期和時間格式 
11.4.1 strftime(3)格式說明符 
11.4.2 實現(xiàn)DTime::strftime(3)方法 
11.4.3 測試類DTime 
11.4.4 理解本地設(shè)置的作用 
11.5 小結(jié)
第12章 用戶ID、口令和組管理 
12.1 UNIX用戶管理入門 
12.1.1 了解用戶名和用戶ID號 
12.1.2 了解用戶名root 
12.1.3 組名和組ID號 
12.1.4 了解gid的0值 
12.2 getuid(2)函數(shù)和geteuid(2)函數(shù) 
12.3 getgid(2)函數(shù)和getegid(2)函數(shù) 
12.4 真正的、有效的和已保存的用戶ID 
12.4.1 有效的用戶ID 
12.4.2 真正的用戶ID 
12.4.3 已保存的用戶ID 
12.4.4 身份驗證角色概要 
12.5 設(shè)置用戶ID 
12.6 設(shè)置組ID 
12.7 FreeBSD的issetugid(2)函數(shù) 
12.8 etc/passwd文件 
12.8.1 注釋字段 
12.8.2 使用注釋字段的&特征 
12.9 口令數(shù)據(jù)庫例程 
12.9.1 passwd結(jié)構(gòu) 
12.9.2 getpwent(3)的錯誤處理 
12.9.3 fgetpwent(3)函數(shù) 
12.9.4 putpwent(3)函數(shù) 
12.9.5 getpwuid(3)函數(shù) 
12.9.6 getpwnam(3)函數(shù) 
12.10 組數(shù)據(jù)庫 
12.10.1 /etc/group文件 
12.10.2 getgrent(3)、setgrent(3)和endgrent(3)函數(shù) 
12.10.3 了解group結(jié)構(gòu) 
12.10.4 fgetgrent(3)函數(shù) 
12.10.5 getgrgid(3)函數(shù) 
12.10.6 getgrnam(3)函數(shù) 
12.11 相關(guān)的重入函數(shù) 
12.12 輔助組 
12.12.1 getgroups(2)函數(shù) 
12.12.2 使用setgroups(2)函數(shù)設(shè)置組 
12.12.3 為指定的用戶名設(shè)置組 
12.13 小結(jié) 
第13章 靜態(tài)庫和共享庫 
13.1 靜態(tài)庫 
13.1.1 檢測進(jìn)程內(nèi)存映像 
13.1.2 實現(xiàn)靜態(tài)庫 
13.1.3 使用ar(1)命令創(chuàng)建存檔文件 
13.1.4 列出存檔的目錄 
13.1.5 獲得存檔的詳細(xì)列表 
13.1.6 鏈接靜態(tài)庫 
13.2 共享庫 
13.2.1 靜態(tài)庫的局限性 
13.2.2 創(chuàng)建共享庫 
13.2.3 鏈接共享庫 
13.2.4 選擇靜態(tài)庫或動態(tài)庫 
13.2.5 列出共享庫的引用 
13.2.6 動態(tài)加載程序 
13.2.7 位置無關(guān)的代碼 
13.2.8 控制共享內(nèi)容 
13.3 靜態(tài)庫和共享庫的比較 
13.3.1 靜態(tài)庫的好處 
13.3.2 共享庫的優(yōu)點 
13.4 動態(tài)庫加載 
13.4.1 打開共享庫 
13.4.2 報告錯誤 
13.4.3 獲得共享的引用指針 
13.4.4 關(guān)閉共享庫 
13.4.5 初始化和析構(gòu) 
13.4.6 應(yīng)用動態(tài)加載 
13.4.7 HPUX 10.2動態(tài)庫加載 
13.5 小結(jié) 
第14章 數(shù)據(jù)庫庫例程 
14.1 NDBM數(shù)據(jù)庫 
14.1.1 錯誤處理 
14.1.2 打開NDBM數(shù)據(jù)庫 
14.1.3 關(guān)閉NDBM數(shù)據(jù)庫 
14.1.4 存儲信息 
14.1.5 獲取信息 
14.1.6 刪除信息 
14.1.7 訪問所有關(guān)鍵字 
14.1.8 使用dbm_nextkey(3)函數(shù)刪除關(guān)鍵字 
14.2 NDBM數(shù)據(jù)庫示例 
14.2.1 目錄軟件 
14.2.2 Dbm類 
14.2.3 InoDb類 
14.2.4 SnapShot應(yīng)用程序 
14.2.5 運行SnapShot應(yīng)用程序 
14.2.6 訪問所有的關(guān)鍵字并刪除 
14.3 小結(jié) 
第三部分 高級概念
第15章 信號 
15.1 了解UNIX信號 
15.2 可靠的和不可靠的信號 
15.3 不可靠的signal(3) API 
15.4 可靠的信號API 
15.4.1 清空信號集 
15.4.2 填充信號集 
15.4.3 給信號集添加信號 
15.4.4 從信號集中刪除信號 
15.4.5 測試一個集合中的信號 
15.4.6 設(shè)置信號操作 
15.4.7 信號操作標(biāo)志 
15.4.8 使用可靠的信號 
15.5 控制信號 
15.5.1 阻塞信號 
15.5.2 獲得等待狀態(tài)的信號 
15.5.3 sigsuspend(2)函數(shù) 
15.6 應(yīng)用alarm(3)函數(shù) 
15.7 從信號處理程序中調(diào)用函數(shù) 
15.7.1 避免重入代碼的問題 
15.7.2 在信號處理程序中用errno報告重入的問題 
15.8 應(yīng)用EINTR錯誤代碼 
15.9 喚醒信號 
15.10 小結(jié) 
第16章 有效的I/O調(diào)度 
16.1 非阻塞的I/O 
16.1.1 在非阻塞模式下打開文件 
16.1.2 設(shè)置非阻塞模式 
16.1.3 非阻塞的I/O操作 
16.1.4 使用非阻塞I/O帶來的問題 
16.2 I/O調(diào)度函數(shù) 
16.2.1 文件描述符集合以及它們的宏 
16.2.2 timeval結(jié)構(gòu) 
16.2.3 select(2)函數(shù) 
16.2.4 使用select(2)函數(shù) 
16.3 I/O輪詢 
16.3.1 輪詢事件 
16.3.2 輪詢優(yōu)先級 
16.3.3 poll(2)示例 
16.4 小結(jié) 
第17章 計時器 
17.1 睡眠函數(shù) 
17.2 sleep(3)的UNIX實現(xiàn) 
17.2.1 以微秒為單位的睡眠 
17.2.2 以納秒為單位的睡眠 
17.3 間隔計時器函數(shù) 
17.3.1 間隔計時器API 
17.3.2 間隔計時器宏 
17.3.3 間隔計時器的制約 
17.3.4 創(chuàng)建只執(zhí)行一次的計時器 
17.3.5 創(chuàng)建重復(fù)計時器 
17.4 小結(jié) 
第18章 管道和進(jìn)程 
18.1 UNIX管道 
18.1.1 創(chuàng)建UNIX管道 
18.1.2 將管道打開到其他進(jìn)程 
18.1.3 從管道讀取數(shù)據(jù) 
18.1.4 將數(shù)據(jù)寫到管道 
18.1.5 關(guān)閉管道 
18.1.6 處理已破壞的管道 
18.2 不用管道的外部進(jìn)程 
18.2.1 解釋system(3)函數(shù)的返回值 
18.2.2 調(diào)用命令 
18.2.3 仔細(xì)考查system(3)函數(shù) 
18.3 小結(jié) 
第19章 分支進(jìn)程 
19.1 UNIX分支進(jìn)程概述 
19.1.1 fork(2)函數(shù) 
19.1.2 使用fork(2) 
19.2 等待進(jìn)程完成 
19.2.1 僵進(jìn)程 
19.2.2 wait(2)函數(shù) 
19.2.3 解釋退出狀態(tài)
19.2.4 其他等待系統(tǒng)調(diào)用 
19.3 執(zhí)行新程序 
19.4 exec(2)系列的其他成員 
19.5 小結(jié) 
第20章 模式匹配 
20.1 shell模式 
20.1.1 *元字符 
20.1.2 ?元字符 
20.1.3 [元字符和]元字符 
20.1.4 !元字符 
20.1.5 帶有\(zhòng)的轉(zhuǎn)義字符 
20.2 字符串模式函數(shù) 
20.3 glob(3)函數(shù) 
20.3.1 glob(3)函數(shù)的返回值 
20.4 小結(jié) 
第21章 正則表達(dá)式 
21.1 了解正則表達(dá)式 
21.1.1 固定符 
21.1.2 集合 
21.1.3 范圍 
21.1.4 字符類 
21.1.5 .元字符
21.1.6 加上括號的匹配子表達(dá)式 
21.1.7 原子 
21.1.8 段 
21.1.9 分支 
21.1.10 表達(dá)式邊界 
21.1.11 引用的字符 
21.2 正則表達(dá)式庫 
21.2.1 編譯正則表達(dá)式 
21.2.2 報告錯誤 
21.2.3 釋放正則表達(dá)式 
21.2.4 匹配正則表達(dá)式 
21.2.5 應(yīng)用正則表達(dá)式 
21.3 小結(jié)
第22章 進(jìn)程間的通信 
22.1 IPC的類型 
22.2 消息隊列 
22.3 共享內(nèi)存 
22.4 信號量 
22.5 引用IPC資源 
22.5.1 IPC關(guān)鍵字值 
22.5.2 創(chuàng)建IPC資源 
22.5.3 根據(jù)IPC關(guān)鍵字訪問 
22.5.4 根據(jù)IPC ID訪問 
22.6 撤銷IPC資源 
22.7 小結(jié) 
第23章 消息隊列 
23.1 控制消息隊列 
23.1.1 創(chuàng)建消息隊列 
23.1.2 訪問消息隊列 
23.1.3 撤銷消息隊列 
23.1.4 獲得消息隊列的信息 
23.1.5 改變消息隊列 
23.2 發(fā)送消息和接收消息 
23.2.1 發(fā)送消息 
23.2.2 接收消息 
23.3 使用消息隊列 
23.4 小結(jié) 
第24章 信號量 
24.1 信號量實用程序 
24.2 創(chuàng)建和訪問信號量集合 
24.3 撤銷信號量集合 
24.4 控制信號量 
24.4.1 查詢信號量集合 
24.4.2 更改信號量訪問 
24.4.3 查詢信號量的值 
24.4.4 查詢整個信號量集合的值 
24.4.5 更改信號量的值 
24.4.6 更改整個信號量集合的值 
24.4.7 查詢信號量的進(jìn)程ID 
24.4.8 查詢等待通知的進(jìn)程數(shù) 
24.4.9 查詢等待0的進(jìn)程數(shù) 
24.5 使用信號量 
24.5.1 等待信號量 
24.5.2 通知信號量 
24.5.3 等待0操作 
24.5.4 信號量取消處理 
24.5.5 semop實用程序 
24.6 小結(jié) 
第25章 共享內(nèi)存 
25.1 globvar實用程序 
25.1.1 創(chuàng)建全局變量池 
25.1.2 撤銷全局變量池 
25.1.3 globvar環(huán)境變量 
25.1.4 創(chuàng)建全局變量 
25.1.5 訪問全局變量 
25.1.6 刪除全局變量 
25.1.7 清除全局變量池 
25.2 共享內(nèi)存系統(tǒng)調(diào)用 
25.2.1 創(chuàng)建和訪問共享內(nèi)存 
25.2.2 獲取共享內(nèi)存的信息 
25.2.3 更改共享內(nèi)存屬性 
25.2.4 連接共享內(nèi)存 
25.2.5 釋放共享內(nèi)存 
25.2.6 撤銷共享內(nèi)存 
25.3 使用共享內(nèi)存 
25.4 小結(jié) 
第26章 內(nèi)存映射的文件 
26.1 確定頁面的大小 
26.2 創(chuàng)建內(nèi)存的映射 
26.3 控制內(nèi)存映射的區(qū)域 
26.3.1 更改訪問保護(hù) 
26.3.2 通知核心內(nèi)存的使用情況 
26.3.3 查詢內(nèi)存中的頁面 
26.3.4 同步更改 
26.4 撤銷內(nèi)存映射 
26.5 小結(jié) 
第27章 X Window編程 
27.1 事件驅(qū)動的編程 
27.1.1 事件驅(qū)動的模型 
27.1.2 客戶/服務(wù)器處理 
27.1.3 軟件層次 
27.2 Xlib客戶程序 
27.3 小結(jié) 

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號