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

Linux編程24學(xué)時教程

Linux編程24學(xué)時教程

定 價:¥49.00

作 者: (美)Warren W.Gay(華倫·W.蓋伊)著;瀟湘工作室譯
出版社: 機械工業(yè)出版社
叢編項: 自學(xué)通系列
標(biāo) 簽: UNIX操作系統(tǒng) Linux

ISBN: 9787111080114 出版時間: 2000-05-01 包裝:
開本: 26cm+光盤1片 頁數(shù): 348頁 字?jǐn)?shù):  

內(nèi)容簡介

  本書循序漸進(jìn)地介紹Linux編程技術(shù),包括創(chuàng)建make文件、Linux過濾程序及錯誤處理和報告、創(chuàng)建Linux實用程序、調(diào)試程序、使用Linux及其編譯器和GNU軟件,以及信號量、進(jìn)程、函數(shù)和函數(shù)庫的使用等。本書適用于懂得C語言初學(xué)Linux的程序員。

作者簡介

暫缺《Linux編程24學(xué)時教程》作者簡介

圖書目錄

譯者序
前言
第1學(xué)時 入門
1.1 Linux簡介
1.2 GNU gcc簡介
1.2.1 選擇GNU標(biāo)準(zhǔn)
1.2.2 指定編譯器輸出
1.2.3 運行編譯后的程序
1.3 用于調(diào)試的編譯
1.4 檢查編譯器的警告級別
1.5 處理編譯器的警告消息
1.5.1 關(guān)于賦值的警告
1.5.2 關(guān)于未用參數(shù)的警告
1.5.3 解決關(guān)于未用變量的警告
1.5.4 解決關(guān)于未用字符串的警告
1.6 測試C編譯器
1.7 課時小結(jié)
1.8 專家答疑
1.9 課外作業(yè)
1.9.1 思考題
1.9.2 練習(xí)題
第2學(xué)時 管理源代碼
2.1 使用源代碼管理的好處
2.2 有哪些可以選擇的工具
2.3 為項目設(shè)置RCS
2.4 創(chuàng)建新的源文件
2.5 查看RCS控制的文件
2.6 使用RCS子目錄
2.7 簽出文件進(jìn)行編輯
2.8 修改文件
2.9 顯示修改的內(nèi)容
2.10 注冊修改
2.11 用rlog命令列出編輯歷史記錄
2.12 嵌入式替換
2.13 顯示嵌入的RCS信息
2.14 使用源文件模板
2.14.1 源代碼模板
2.14.2 包含文件模板
2.15 取消鎖定的簽出
2.16 課時小結(jié)
2.17 專家答疑
2.18 課外作業(yè)
2.18.1 思考題
2.18.2 練習(xí)題
第3學(xué)時 編寫Linux實用程序
3.1 開始使用項目dos_cvrt
3.1.1 項目規(guī)劃
3.1.2 簽出dos_cvrt.c進(jìn)行編輯
3.1.3 選擇包含文件
3.1.4 利用占位程序編寫dos_cvrt
3.1.5 測試帶占位程序的實用程序
3.1.6 替換占位程序
3.1.7 回顧整個項目
3.2 使用命令行編輯
3.2.1 選擇命令行編輯模式
3.2.2 進(jìn)行命令行搜索
3.3 課時小結(jié)
3.4 專家答疑
3.5 課外作業(yè)
3.5.1 思考題
3.5.2 練習(xí)題
第4學(xué)時 C語言的模塊化編程
4.1 模塊化編程
4.2 制作模塊化的dos_cvrt.c
4.2.1 簽出dos_cvrt.c進(jìn)行編輯
4.2.2 將dos_cvrt.c分解為函數(shù)
4.2.3 改善dos_cvrt
4.2.4 將dos_cvrt分解為獨立的源程序模塊 
4.2.5 聲明靜態(tài)函數(shù)
4.3 課時小結(jié)
4.4 專家答疑
4.5 課外作業(yè)
4.5.1 思考題
4.5.2 練習(xí)題
第5學(xué)時 Make文件簡介
5.1 為什么要使用make
5.2 Makefile文件
5.2.1 測試make的內(nèi)部功能
5.2.2 命名自已的Makefile文件
5.2.3 Makefile的目標(biāo)文件
5.2.4 默認(rèn)的目標(biāo)文件
5.2.5 標(biāo)準(zhǔn)目標(biāo)文件名稱
5.2.6 依賴關(guān)系
5.3 定義make的宏
5.3.1 替代宏的值
5.3.2 使用環(huán)境變量
5.3.3 使用make的-e選項
5.4 檢查文件的后綴
5.5 推理規(guī)則
5.5.1 測試默認(rèn)推理規(guī)則
5.5.2 定義推理規(guī)則
5.5.3 動作語句
5.5.4 內(nèi)部宏
5.5.5 宏CFLAGS
5.6 為dos_cvrt使用Makefile文件
5.6.1 生成一個Makefile文件
5.6.2 測試新的Makefile文件
5.6.3 測試局部編譯
5.7 課時小結(jié)
5.8 專家答疑
5.9 課外作業(yè)
5.9.1 思考題
5.9.2 練習(xí)題
第6學(xué)時 Linux命令行選項處理
6.1 命令行處理簡介
6.1.1 命令行約定
6.1.2 使用多個選項
6.1.3 組合多個選項
6.1.4 使用帶參數(shù)的選項
6.1.5 區(qū)分選項和參數(shù)
6.2 檢查看起來像選項的參數(shù)
6.3 getopt()簡介
6.4 getopt()函數(shù)調(diào)用
6.5 回顧函數(shù)getopt()的原型
6.5.1 定義optstring參數(shù)
6.5.2 定義一個選項處理循環(huán)
6.6 使用getopt()改進(jìn)dos_cvrt
6.7 GNU長選項擴(kuò)展
6.8 使用GNU函數(shù)getop_long()
6.8.1 定義GNU函數(shù)getop_long()的原型
6.8.2 理解option結(jié)構(gòu)
6.8.3 設(shè)置option結(jié)構(gòu)
6.8.4 使用一個空option.flag指針
6.8.5 使用一個非空option.flag指針
6.9 為dos_cvrt增加GNU長選項
6.10 課時小結(jié)
6.11 專家答疑
6.12 課外作業(yè)
6.12.1 思考題
6.12.2 練習(xí)題
第7學(xué)時 錯誤的處理和報告
7.1 如何處理錯誤
7.2 UNIX的錯誤報告
7.2.1 指出成功或錯誤
7.2.2 判斷錯誤的原因
7.3 舊的errno值
7.3.1 通過名稱引用錯誤代碼
7.3.2 測試特殊錯誤
7.3.3 正確使用errno
7.4 新的errno值
7.4.1 聲明新的errno變量
7.4.2 使用新的errno變量
7.5 關(guān)于errno值的輸出
7.5.1 使用函數(shù)perror()
7.5.2 使用數(shù)組sys_errlist[]
7.5.3 使用函數(shù)strerror()
7.6 改進(jìn)dos_cvrt使它友好地報告錯誤
7.6.1 改進(jìn)模塊unix2dos.c
7.6.2 改進(jìn)模塊dos2ix.c
7.6.3 生成模塊putch.c
7.6.4 改變包含文件dos_cvrt.h
7.6.5 改進(jìn)Makefile
7.6.6 改進(jìn)模塊dos_cvrt.c
7.7 測試所有的錯誤
7.8 課時小結(jié)
7.9 專家答疑
7.10 課外作業(yè)
7.10.1 思考題
7.10.2 練習(xí)題
第8學(xué)時 Linux的main程序及其環(huán)境
8.1 main程序接口
8.1.1 組織數(shù)組argv[]
8.1.2 使用不帶argc的argv[]
8.1.3 聲明第三個main()參數(shù)
8.1.4 傳遞外殼的外部變量
8.1.5 使用外部指針environ
8.2 Linux程序的地址空間
8.3 環(huán)境操作
8.3.1 獲取一個環(huán)境變量
8.3.2 改變環(huán)境變量
8.3.3 刪除環(huán)境變量的定義
8.3.4 理解環(huán)境變化的影響
8.4 進(jìn)程出口值
8.4.1 退出代碼處理
8.4.2 返回一個值
8.4.3 使用exit()函數(shù)
8.4.4 在return和exit()之間選擇
8.4.5 使用關(guān)于return語句的編譯器警告
8.5 課時小結(jié)
8.6 專家答疑
8.7 課外作業(yè)
8.7.1 思考題
8.7.2 練習(xí)題
第9學(xué)時 有用的調(diào)試技術(shù)
9.1 調(diào)試技術(shù)簡介
9.2 調(diào)試器的限制
9.3 用C宏進(jìn)行跟蹤
9.3.1 定義一個TRACE宏
9.3.2 改進(jìn)TRACE宏
9.3.3 定義一個參數(shù)數(shù)量可變的TRACEF
9.3.4 定義有條件的調(diào)試宏
9.4 運行階段調(diào)試跟蹤功能
9.4.1 用命令行選項控制TRACE
9.4.2 使用調(diào)試級別
9.4.3 通過環(huán)境變量來設(shè)置調(diào)試級別
9.5 設(shè)計子系統(tǒng)跟蹤功能
9.5.1 編寫子系統(tǒng)跟蹤功能
9.5.2 子系統(tǒng)跟蹤總結(jié)
9.6 課時小結(jié)
9.7 專家答疑
9.8 課外作業(yè)
9.8.1 思考題
9.8.2 練習(xí)題
第10學(xué)時 靜態(tài)和共享函數(shù)庫
10.1 C函數(shù)庫簡介
10.2 靜態(tài)函數(shù)庫
10.2.1 回顧進(jìn)程內(nèi)存映像
10.2.2 實現(xiàn)一個靜態(tài)函數(shù)庫
10.2.3 使用ar命令來生成檔案
10.2.4 列出檔案的內(nèi)容
10.2.5 鏈接靜態(tài)函數(shù)庫
10.3 共享函數(shù)庫
10.3.1 靜態(tài)函數(shù)庫的限制
10.3.2 生成一個共享函數(shù)庫
10.3.3 鏈接共享函數(shù)庫
10.3.4 列出共享函數(shù)庫的引用
10.3.5 使用動態(tài)裝載器
10.3.6 獨立于代碼的編譯位置
10.3.7 控制共享的內(nèi)容
10.4 函數(shù)庫的含義
10.4.1 靜態(tài)函數(shù)庫的優(yōu)點
10.4.2 共享函數(shù)庫的優(yōu)點
10.5 何時該使用靜態(tài)或共享函數(shù)庫
10.5.1 許可證號
10.5.2 安裝可靠
10.5.3 為了節(jié)省而共享
10.5.4 動態(tài)裝載
10.6 課時小結(jié)
10.7 專家答疑
10.8 課外作業(yè)
10.8.1 思考題
10.8.2 練習(xí)題
第11學(xué)時 高級字符串函數(shù)
11.1 高級字符串函數(shù)簡介
11.2 包含字符串函數(shù)聲明
11.3 函數(shù)strcasecmp()和strncasecmp()
11.3.1 測試一個命令名稱匹配的例子
11.3.2 比較前n個字符
11.3.3 解釋返回值
11.4 函數(shù)strdup()
11.4.1 釋放字符串
11.4.2 測試錯誤
11.5 函數(shù)strchr()和strrchr()
11.6 函數(shù)strpbrk()
11.7 函數(shù)strspn()和strcspn()
11.8 函數(shù)strstr()
11.9 函數(shù)strtok()和strtok_r()
11.9.1 函數(shù)strtok()
11.9.2 分解一個命令行
11.9.3 函數(shù)strtok_r()
11.9.4 strtok()的限制
11.9.5 保存狀態(tài)
11.9.6 介紹strtok_r()函數(shù)
11.10 字符串使用技巧
11.10.1 優(yōu)化strcat()和strcpy()調(diào)用
11.10.2 有效地使用strncpy()返回值
11.10.3 臨時編寫sprintfcat()函數(shù)
11.11 課時小結(jié)
11.12 專家答疑
11.13 課外作業(yè)
11.13.1 思考題
11.13.2 練習(xí)題
第12學(xué)時 轉(zhuǎn)換函數(shù)
12.1 轉(zhuǎn)換函數(shù)簡介
12.2 系列函數(shù)atoi()、atol()和atof()
12.2.1 詳細(xì)考察函數(shù)atoi()和atol()
12.2.2 使用atof()函數(shù)
12.3 為轉(zhuǎn)換和有效性使用sscanf()
12.3.1 將sscanf()用于數(shù)字轉(zhuǎn)換
12.3.2 測試使用sscanf()的數(shù)值轉(zhuǎn)換
12.3.3 改善sscanf()轉(zhuǎn)換
12.3.4 考慮sscanf()的限制
12.4 函數(shù)strtol()和strtoul()
12.4.1 使用函數(shù)strtol()
12.4.2 測試函數(shù)strtol()
12.4.3 測試錯誤
12.4.4 測試轉(zhuǎn)換指針
12.4.5 執(zhí)行多個轉(zhuǎn)換
12.4.6 理解基數(shù)轉(zhuǎn)換
12.4.7 測試上溢和下溢
12.4.8 對strtoul()上溢的測試
12.5 函數(shù)strtod()
12.5.1 使用函數(shù)strtod()
12.5.2 測試數(shù)學(xué)錯誤
12.6 課時小結(jié)
12.7 專家答疑
12.8 課外作業(yè)
12.8.1 思考題
12.8.2 練習(xí)題
第13學(xué)時 Linux的日期和時間功能
13.1 日期和時間支持功能簡介
13.2 Epoch時間簡介
13.3 理解當(dāng)前的Linux日期和時間
13.3.1 定義日期和時間數(shù)據(jù)類型
13.3.2 理解為什么時間在運行
13.3.3 發(fā)現(xiàn)time_t數(shù)據(jù)類型
13.3.4 使用time()獲得日期和時間
13.4 使用時間轉(zhuǎn)換函數(shù)
13.4.1 函數(shù)ctime()
13.4.2 函數(shù)localtime()和gmtime()
13.4.3 tm結(jié)構(gòu)
13.4.4 函數(shù)asctime()
13.4.5 函數(shù)tzset()
13.4.6 函數(shù)mktime()
13.5 定制日期和時間格式
13.6 課時小結(jié)
13.7 專家答疑
13.8 課外作業(yè)
13.8.1 思考題
13.8.2 練習(xí)題
第14學(xué)時 用戶ID、密碼和組管理
14.1 簡單介紹Linux的管理
14.1.1 用戶名和uid編號
14.1.2 組名和gid編號
14.2 身份函數(shù)
14.2.1 getuid()和geteuid()函數(shù)
14.2.2 getgid()和getegid()函數(shù)
14.2.3 uid和gid編號示例
14.3?。痚tc/passwd文件
14.3.1 注釋域
14.3.2 在注釋域中使用&
14.3.3 搜索密碼數(shù)據(jù)庫
14.4 密碼數(shù)據(jù)庫例程
14.4.1 passwd結(jié)構(gòu)
14.4.2 處理getpwent()函數(shù)的錯誤
14.4.3 fgetpwent()函數(shù)
14.4.4 putpwent()函數(shù)
14.4.5 getpwuid()函數(shù)
14.4.6 getpwnam()函數(shù)
14.5 組數(shù)據(jù)庫
14.5.1 /etc/group文件
14.5.2 getgrent()、setgrent()和endgrent()函數(shù)
14.5.3 group結(jié)構(gòu)
14.5.4 fgetgrent()函數(shù)
14.5.5 getgrgid()函數(shù)
14.5.6 getgrnam()函數(shù)
14.6 課時小結(jié)
14.7 專家答疑
14.8 課外作業(yè)
14.8.1 思考題
14.8.2 練習(xí)題
第15學(xué)時 文件系統(tǒng)信息和管理
15.1 基本的文件操作
15.1.1 刪除文件
15.1.2 鏈接文件
15.1.3 移動文件
15.2 目錄操作
15.2.1 得到當(dāng)前的工作目錄
15.2.2 改變目錄
15.2.3 創(chuàng)建新目錄
15.2.4 刪除目錄
15.3 設(shè)置umask值
15.3.1 為什么要用umask
15.3.2 umask的作用范圍
15.3.3 使用umask()函數(shù)
15.4 理解文件系統(tǒng)信息
15.5 課時小結(jié)
15.6 專家答疑
15.7 課外作業(yè)
15.7.1 思考題
15.7.2 練習(xí)題
第16學(xué)時 臨時文件和進(jìn)程清理
16.1 生成臨時文件名
16.1.1 調(diào)用tmpnam()函數(shù)
16.1.2 調(diào)用mkstemp()函數(shù)
16.1.3 調(diào)用tmpfile()函數(shù)
16.1.4 調(diào)用tempnam()函數(shù)
16.1.5 解釋臨時文件函數(shù)的錯誤
16.2 將文件設(shè)為臨時文件
16.2.1 調(diào)用unlink()函數(shù)將文件設(shè)為臨時文件
16.2.2 退出之前的清理
16.3 課時小結(jié)
16.4 專家答疑
16.5 課外作業(yè)
16.5.1 思考題
16.5.2 練習(xí)題
第17學(xué)時 管道和進(jìn)程
17.1 使用外部進(jìn)程
17.2 管道簡介
17.2.1 打開管道
17.2.2 讀管道
17.2.3 寫管道
17.2.4 關(guān)閉管道
17.2.5 處理斷開的管道
17.3 system()函數(shù)簡介
17.3.1 system()函數(shù)的返回值
17.3.2 調(diào)用system()函數(shù)
17.3.3 運行程序示例
17.3.4 對system()函數(shù)的評價
17.4 課時小結(jié)
17.5 專家答疑
17.6 課外作業(yè)
17.6.1 思考題
17.6.2 練習(xí)題
第18學(xué)時 派生進(jìn)程
18.1 進(jìn)程簡介
18.1.1 進(jìn)程ID號
18.1.2 父進(jìn)程和子進(jìn)程
18.1.3 創(chuàng)建進(jìn)程
18.2 fork()函數(shù)
18.2.1 調(diào)用fork()函數(shù)
18.2.2 運行fork()函數(shù)示例
18.3 wait()函數(shù)族
18.3.1 wait()函數(shù)的重要性
18.3.2 調(diào)用wait()函數(shù)
18.3.3 wait函數(shù)族中的其他函數(shù)
18.4 exec()函數(shù)族
18.4.1 exec()過程
18.4.2 聯(lián)合fork()函數(shù)和exec()函數(shù)
18.4.3 調(diào)用exec()函數(shù)
18.4.4 exec()函數(shù)族中的其他函數(shù)
18.5 課時小結(jié)
18.6 專家答疑
18.7 課外作業(yè)
18.7.1 思考題
18.7.2 練習(xí)題
第19學(xué)時 信號量
19.1 信號量簡介
19.1.1 和單淋浴間的類比
19.1.2 和多淋浴間的類比
19.1.3 使用Linux信號量
19.1.4 等待信號量
19.1.5 通知信號量
19.1.6 等待多個實例
19.2 創(chuàng)建和訪問信號量集
19.2.1 標(biāo)識已存在的信號量集
19.2.2 調(diào)用semget()函數(shù)來創(chuàng)建和訪問信號量集
19.2.3 初始化信號量集
19.3 等待和通知信號量集
19.3.1 等待信號量集
19.3.2 通知信號量集
19.4 釋放信號量占用的系統(tǒng)資源
19.4.1 刪除信號量集
19.4.2 使用iPcrm命令釋放信號量
19.5 模擬使用信號量
19.6 課時小結(jié)
19.7 專家答疑
19.8 課外作業(yè)
19.8.1 思考題
19.8.2 練習(xí)題
第20學(xué)時 共享內(nèi)存
20.1 為什么需要共享內(nèi)存
20.2 標(biāo)識共享內(nèi)存
20.3 創(chuàng)建、連接和釋放共享內(nèi)存
20.3.1 創(chuàng)建新的共享內(nèi)存
20.3.2 連接共享內(nèi)存
20.3.3 在指定的地址連接
20.3.4 分離共享內(nèi)存
20.3.5 釋放共享內(nèi)存
20.4 使用共享內(nèi)存
20.4.1 安全訪問共享內(nèi)存
20.4.2 直接引用共享內(nèi)存而不用信號量
20.5 將共享內(nèi)存應(yīng)用到一個游戲中
20.5.1 回顧戰(zhàn)艦游戲
20.5.2 玩家指令
20.5.3 分析玩家1的代碼
20.5.4 分析玩家2的代碼
20.5.5 查看其他重要的源模塊
20.6 課時小結(jié)
20.7 專家答疑
20.8 課外作業(yè)
20.8.1 思考題
20.8.2 練習(xí)題
第21學(xué)時 消息隊列
21.1 消息隊列簡介
21.1.1 Linux消息隊列
21.1.2 應(yīng)用消息類型
21.1.3 相互競爭的接收者
21.2 管理消息隊列
21.2.1 創(chuàng)建和訪問消息隊列
21.2.2 釋放消息隊列
21.2.3 消息的結(jié)構(gòu)
21.2.4 指定消息的大小
21.2.5 發(fā)送消息
21.2.6 接收消息
21.3 呼叫服務(wù)器
21.4 課時小結(jié)
21.5 專家答疑
21.6 課外作業(yè)
21.6.1 思考題
21.6.2 練習(xí)題
第22學(xué)時 信號
22.1 什么是信號
22.2 信號SIGINT
22.3 信號的術(shù)語
22.4 可靠的和不可靠的信號
22.5 使用信號集
22.5.1 清空信號集
22.5.2 填充信號集
22.5.3 向信號集中添加信號
22.5.4 從信號集中刪除信號
22.5.5 測試信號集中的信號
22.6 設(shè)置信號響應(yīng)
22.7 捕獲信號
22.8 封鎖和解鎖信號
22.9 得到掛起的信號
22.10 調(diào)用sigsuspend()函數(shù)
22.11 調(diào)用alarm()函數(shù)
22.12 高級信號技術(shù)
22.12.1 從信號處理程序中調(diào)用函數(shù)
22.12.2 避免可重入代碼問題
22.12.3 在信號處理程序中處理errno
22.12.4 處理EINTR錯誤
22.13 常用的Linux信號
22.14 引發(fā)Linux信號
22.15 課時小結(jié)
22.16 專家答疑
22.17 課外作業(yè)
22.17.1 思考題
22.17.2 練習(xí)題
第23學(xué)時 客戶/服務(wù)器編程
23.1 客戶/服務(wù)器的優(yōu)點
23.2 設(shè)計TQL服務(wù)器
23.2.1 編譯TQL項目
23.2.2 使用TQL命令行選項
23.2.3 檢查TQL的環(huán)境變量
23.3 理解SQL
23.3.1 使用SELECT命令
23.3.2 使用表和列
23.3.3 第一次啟動TQL
23.3.4 選擇特定的列
23.3.5 選擇特定的行
23.3.6 對行進(jìn)行排序
23.4 分析TQL的源代碼
23.4.1 分析表代碼
23.4.2 在tqld中處理信號
23.4.3 分析排序模塊
23.4.4 執(zhí)行sort命令
23.5 課時小結(jié)
23.6 專家答疑
23.7 課外作業(yè)
23.7.1 思考題
23.7.2 練習(xí)題
第24學(xué)時 使用幫助頁
24.1 介紹man命令
24.1.1 使用man命令
24.1.2 探索節(jié)的內(nèi)容
24.1.3 找到幫助頁
24.1.4 調(diào)試幫助頁
24.1.5 解決與文檔的沖突
24.1.6 查看ERRORS部分
24.1.7 查看SEE ALSO部分
24.1.8 查找文件
24.1.9 有文檔記錄的錯誤
24.2 課時小結(jié)
24.3 展望未來
24.4 專家答疑
24.5 課外作業(yè)
24.5.1 思考題
24.5.2 練習(xí)題
附錄 思考題答案

本目錄推薦

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