UNIX/Linux程序設(shè)計(jì)教程

出版時(shí)間:2012-12  出版社:機(jī)械工業(yè)出版社  作者:趙克佳 等編著  頁數(shù):483  
Tag標(biāo)簽:無  

內(nèi)容概要

  《unix/linux程序設(shè)計(jì)教程》遵循最新的“統(tǒng)一unix規(guī)范版本4”,以linux為平臺(tái),系統(tǒng)地講述了unix
api各種函數(shù)的編程方法。本書內(nèi)容包括unix的發(fā)展歷程與標(biāo)準(zhǔn)、標(biāo)準(zhǔn)i/o和低級(jí)i/o、文件與目錄操作、進(jìn)程環(huán)境與進(jìn)程控制、信號(hào)處理、時(shí)間與定時(shí)、終端i/o、高級(jí)i/o、進(jìn)程之間的通信、套接字與網(wǎng)絡(luò)通信、多線程編程。
  《unix/linux程序設(shè)計(jì)教程》在介紹unix
api各種函數(shù)的功能和用途的同時(shí),清晰地闡述了它們所隱含的操作系統(tǒng)基本原理。書中給出了大量程序設(shè)計(jì)示例程序,有助于讀者更好地掌握這些函數(shù)的功能、使用方法及編程技巧。
  《unix/linux程序設(shè)計(jì)教程》特別適合于高等院校計(jì)算機(jī)專業(yè)的教師、高年級(jí)本科生、研究生作為教材和參考書,也特別適合從事計(jì)算機(jī)系統(tǒng)軟件和應(yīng)用軟件開發(fā)的工程技術(shù)人員作為實(shí)用編程手冊(cè)查閱。

書籍目錄

前言
第1章 unix導(dǎo)論
1.1 unix簡史
1.1.1 unix的誕生
1.1.2 unix的早期發(fā)展
1.1.3 bsd unix
1.1.4 系統(tǒng)v unix
1.1.5 unix的商業(yè)化
1.1.6 linux
1.2 標(biāo)準(zhǔn)
1.2.1 svid
1.2.2 posix
1.2.3 統(tǒng)一unix規(guī)范
1.2.4 c標(biāo)準(zhǔn)
1.3 unix基本概念
1.3.1 程序和進(jìn)程
1.3.2 內(nèi)核
1.3.3 shell
1.3.4 用戶名與用戶id、用戶組與組id
1.3.5 特權(quán)用戶
1.3.6 系統(tǒng)調(diào)用與庫函數(shù)
1.4 系統(tǒng)庫
1.4.1 頭文件
1.4.2 保留字
1.4.3 特征測(cè)試宏
1.5 示例程序和編譯環(huán)境
1.6 錯(cuò)誤處理
1.7 系統(tǒng)信息
1.7.1 機(jī)器標(biāo)識(shí)
1.7.2 硬件/軟件類型識(shí)別
1.8 系統(tǒng)能力限制
1.8.1 一般能力限制值
1.8.2 系統(tǒng)和文件特征選項(xiàng)
1.8.3 sysconf()、pathconf()和fpathconf()函數(shù)
1.9 思考與練習(xí)
第2章 標(biāo)準(zhǔn)輸入輸出
2.1 unix 輸入輸出基本概念
2.2 流和file對(duì)象
2.3 打開和關(guān)閉流
2.4 讀和寫流
2.4.1 字符i/o
2.4.2 行i/o
2.4.3 讀回退
2.4.4 塊i/o
2.5 文件定位
2.6 文件結(jié)束和錯(cuò)誤指示器
2.7 流緩沖
2.8 格式i/o
2.8.1 格式輸出
2.8.2 格式輸入
2.9 臨時(shí)文件
2.10 思考與練習(xí)
第3章 低級(jí)輸入輸出
3.1 文件描述字的打開、創(chuàng)建和關(guān)閉
3.2 read()和write()函數(shù)
3.3 設(shè)置描述字的文件位置
3.4 dup()和dup2()函數(shù)
3.5 fdopen()和fileno()函數(shù)
3.6 文件控制函數(shù)fcntl()
3.6.1 重復(fù)文件描述字
3.6.2 文件描述字標(biāo)簽
3.6.3 文件狀態(tài)標(biāo)簽
3.7 非阻塞i/o
3.8 readv()和writev()函數(shù)
3.9 fsync()和fdatasync()函數(shù)
3.10 思考與練習(xí)
第4章 文件與目錄
4.1 文件
4.1.1 stat()、fstat()和lstat()函數(shù)
4.2 文件類型
4.2.1 普通文件
4.2.2 目錄
4.2.3 鏈接與link()函數(shù)
4.2.4 符號(hào)鏈接與symlink()和readlink()函數(shù)
4.2.5 特別文件
4.2.6 測(cè)試文件的類型
4.3 文件的屬主和用戶組
4.3.1 chown()、fchown()和lchown()函數(shù)
4.4 文件方式
4.4.1 文件訪問權(quán)限
4.4.2 調(diào)整用戶id和調(diào)整組id
4.4.3  sticky位
4.4.4 文件方式位小結(jié)
4.5 確定和改變文件方式
4.5.1 umask()函數(shù)
4.5.2 chmod()和fchmod()函數(shù)
4.5.3 access()函數(shù)
4.6 文件大小
4.6.1 截?cái)辔募?br />4.7 文件時(shí)間
4.7.1 utime()和utimes()函數(shù)
4.8 文件的刪除與換名
4.8.1 刪除文件和目錄
4.8.2 文件換名
4.9 目錄操作
4.9.1 工作目錄
4.9.2 創(chuàng)建目錄
4.9.3 讀目錄流
4.9.4 對(duì)目錄流的隨機(jī)訪問
4.10 思考與練習(xí)
第5章 進(jìn)程環(huán)境
5.1 main()函數(shù)
5.2 命令行參數(shù)
5.2.1 命令行參數(shù)的語法約定
5.2.2 掃描命令行中的選項(xiàng)
5.3 環(huán)境變量
5.3.1 環(huán)境表
5.3.2 訪問環(huán)境
5.4 終止進(jìn)程
5.4.1 出口狀態(tài)
5.4.2 終止前的清理
5.4.3 流產(chǎn)程序
5.5 進(jìn)程的存儲(chǔ)空間
5.5.1 進(jìn)程的地址空間
5.5.2 動(dòng)態(tài)存儲(chǔ)分配與釋放
5.5.3 釋放分配的存儲(chǔ)單元
5.6 setjmp()和longjmp()函數(shù)
5.7 進(jìn)程資源
5.7.1 查看與設(shè)置資源限制
5.7.2 資源使用統(tǒng)計(jì)
5.8 用戶信息
5.8.1 用戶名
5.8.2 用戶數(shù)據(jù)庫
5.8.3 組數(shù)據(jù)庫
5.9 進(jìn)程的身份憑證
5.10 調(diào)整進(jìn)程的身份
5.11 思考與練習(xí)
第6章 進(jìn)程控制
6.1 進(jìn)程標(biāo)識(shí)
6.2 進(jìn)程創(chuàng)建
6.3 執(zhí)行一個(gè)新程序
6.4  等待進(jìn)程完成
6.5 進(jìn)程終止與僵死進(jìn)程
6.6 system()函數(shù)
6.7 進(jìn)程組
6.8 會(huì)晤期
6.9 控制終端
6.10 作業(yè)控制
6.11 思考與練習(xí)
第7章 信號(hào)處理
7.1 信號(hào)概念
7.2 unix 信號(hào)
7.2.1 程序錯(cuò)誤類信號(hào)
7.2.2 程序中止類信號(hào)
7.2.3 鬧鐘類信號(hào)
7.2.4 i/o類信號(hào)
7.2.5 作業(yè)控制類信號(hào)
7.2.6 操作錯(cuò)誤類信號(hào)
7.2.7 其他信號(hào)
7.3 生成信號(hào)
7.3.1 raise()函數(shù)
7.3.2 kill()函數(shù)
7.4 設(shè)置信號(hào)的動(dòng)作
7.4.1 signal()函數(shù)
7.4.2 進(jìn)程初啟時(shí)的信號(hào)動(dòng)作
7.4.3 不可靠信號(hào)
7.4.4 sigaction()函數(shù)
7.5 信號(hào)句柄
7.5.1 正常返回的信號(hào)句柄
7.5.2 終止進(jìn)程的句柄
7.6 阻塞信號(hào)
7.6.1 sigset_t類型和信號(hào)集操作
7.6.2 設(shè)置信號(hào)屏蔽
7.6.3 檢查懸掛信號(hào)
7.7 等待信號(hào)
7.7.1 pause()函數(shù)
7.7.2 sigsuspend()函數(shù)
7.8 使用分開的信號(hào)棧
7.9 信號(hào)句柄編程技巧
7.9.1 句柄內(nèi)非局部控制轉(zhuǎn)移
7.9.2 可重入函數(shù)與異步信號(hào)安全函數(shù)
7.9.3 被信號(hào)中斷的系統(tǒng)調(diào)用
7.9.4 原子數(shù)據(jù)
7.10 實(shí)時(shí)信號(hào)
7.10.1 sa_siginfo標(biāo)志
7.10.2 發(fā)送實(shí)時(shí)信號(hào)
7.10.3 等待實(shí)時(shí)信號(hào)
7.11 思考與練習(xí)
第8章 時(shí)間與定時(shí)
8.1 系統(tǒng)時(shí)鐘
8.1.1 time()函數(shù)
8.1.2 gettimeofday()函數(shù)
8.2 時(shí)間格式轉(zhuǎn)換
8.2.1 分解的日歷時(shí)間
8.2.2 格式化日期與時(shí)間
8.3 cpu時(shí)間與墻鐘時(shí)間
8.3.1 clock()函數(shù)
8.3.2 times()函數(shù)
8.4 睡眠與定時(shí)
8.4.1 sleep()函數(shù)
8.4.2 設(shè)置定時(shí)器
8.5 實(shí)時(shí)時(shí)鐘與定時(shí)
8.5.1 實(shí)時(shí)時(shí)鐘
8.5.2 實(shí)時(shí)睡眠
8.5.3 實(shí)時(shí)定時(shí)器
8.5.4 創(chuàng)建和刪除實(shí)時(shí)定時(shí)器
8.5.5 設(shè)置實(shí)時(shí)定時(shí)器
8.5.6 定時(shí)器超期計(jì)數(shù)
8.6 思考與練習(xí)
第9章 終端i/o
9.1 需要改變終端設(shè)置的例子
9.2 終端i/o概述
9.2.1 終端
9.2.2 串行端口
9.2.3 終端設(shè)備文件
9.2.4 輸入輸出隊(duì)列
9.2.5 加工和非加工輸入方式
9.3 gti控制接口
9.3.1 termios數(shù)據(jù)結(jié)構(gòu)
9.3.2 gti控制函數(shù)
9.4 終端屬性
9.4.1 輸入方式
9.4.2 輸出方式
9.4.3 控制方式
9.4.4 局部方式
9.4.5 特殊字符
9.4.6 stty命令
9.5 終端標(biāo)識(shí)
9.6 改變終端屬性
9.7 加工方式與非加工方式輸入
9.7.1 加工方式輸入
9.7.2 非加工方式輸入
9.8 設(shè)置波特率
9.9 行控制函數(shù)
9.10 串行端口程序設(shè)計(jì)
9.11 思考與練習(xí)
第10章 高級(jí)i/o
10.1 文件鎖
10.1.1 fcntl()文件鎖操作
10.1.2 鎖的測(cè)試、請(qǐng)求和釋放
10.1.3 文件鎖與進(jìn)程和文件的關(guān)系
10.1.4 死鎖
10.1.5 建議鎖與強(qiáng)制鎖
10.2 信號(hào)驅(qū)動(dòng)的i/o
10.3 多路轉(zhuǎn)接i/o
10.3.1 select()函數(shù)
10.3.2 poll()函數(shù)
10.4 異步i/o
10.4.1 異步i/o控制塊
10.4.2 i/o完成時(shí)的信號(hào)交付
10.4.3 異步i/o的優(yōu)先級(jí)
10.4.4 異步i/o函數(shù)
10.4.5 異步i/o之例
10.4.6 異步i/o注意事項(xiàng)
10.5 存儲(chǔ)映射i/o
10.6 思考與練習(xí)
第11章 進(jìn)程間通信
11.1 管道
11.1.1 創(chuàng)建管道
11.1.2 父子進(jìn)程間的管道通信
11.1.3 連接標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出的管道
11.1.4 popen()和pclose()函數(shù)
11.1.5 管道i/o的原子性
11.2 fifo特別文件
11.2.1 創(chuàng)建fifo
11.2.2 fifo操作
11.2.3 fifo用于客戶/服務(wù)通信
11.3 系統(tǒng)v ipc
11.3.1 關(guān)鍵字和標(biāo)識(shí)
11.3.2 ipc資源描述結(jié)構(gòu)與成員ipc_perm
11.3.3 ipcs和ipcrm命令
11.4 消息隊(duì)列
11.4.1 創(chuàng)建和獲得消息隊(duì)列
11.4.2 消息隊(duì)列的查詢、設(shè)置和刪除
11.4.3 發(fā)送和接收消息
11.5 共享存儲(chǔ)段
11.5.1 創(chuàng)建和獲得共享存儲(chǔ)段
11.5.2 共享存儲(chǔ)段的查詢、設(shè)置和刪除
11.5.3 共享存儲(chǔ)段的連接和分離
11.6 信號(hào)量
11.6.1 創(chuàng)建和獲得信號(hào)量標(biāo)識(shí)
11.6.2 信號(hào)量的查詢、設(shè)置和刪除
11.6.3 信號(hào)量操作
11.7 思考與練習(xí)
第12章 套接字與網(wǎng)絡(luò)通信
12.1 tcp/ip協(xié)議
12.2 套接字
12.3 套接字地址結(jié)構(gòu)
12.3.1 ip地址
12.3.2 域名地址
12.3.3 服務(wù)與端口號(hào)
12.3.4 套接字地址數(shù)據(jù)結(jié)構(gòu)
12.3.5 字節(jié)順序
12.4 命名套接字
12.5 套接字通信模式
12.6 流套接字操作
12.6.1 請(qǐng)求連接
12.6.2 接收連接
12.6.3 getsockname()和getpeername()函數(shù)
12.6.4 多客戶服務(wù)
12.6.5 send()和recv()函數(shù)
12.7 套接字選項(xiàng)
12.8 帶外數(shù)據(jù)
12.8.1 tcp帶外數(shù)據(jù)
12.8.2 帶外數(shù)據(jù)的發(fā)送和接收
12.8.3 帶外數(shù)據(jù)標(biāo)志
12.9 數(shù)據(jù)報(bào)套接字操作
12.9.1 sendto()和recvfrom()函數(shù)
12.9.2 數(shù)據(jù)報(bào)套接字客戶/服務(wù)之例
12.9.3 使用connect()函數(shù)
12.10 超時(shí)處理
12.11 思考與練習(xí)
第13章 線程
13.1 線程概念
13.1.1 什么是線程
13.1.2 線程的好處
13.1.3 pthreads線程
13.1.4 線程標(biāo)識(shí)
13.2 創(chuàng)建線程
13.3 終止線程
13.3.1 等待線程終止
13.3.2 可匯合與分離的線程
13.4 創(chuàng)建特殊屬性的線程
13.5 互斥變量
13.5.1 互斥變量的初始化和銷毀
13.5.2 互斥變量屬性
13.5.3 互斥變量的加鎖與解鎖
13.5.4 互斥變量與spin鎖
13.6 讀寫鎖
13.6.1 讀寫鎖的初始化和銷毀
13.6.2 讀寫鎖的上鎖與解鎖
13.7 條件變量
13.7.1 創(chuàng)建和銷毀條件變量
13.7.2 條件變量屬性
13.7.3 等待條件變量
13.7.4 喚醒條件變量等待
13.8 思考與練習(xí)
第14章 線程高級(jí)特征
14.1 線程專有數(shù)據(jù)
14.1.1 線程專有數(shù)據(jù)鍵的創(chuàng)建和刪除
14.1.2 使用線程專有數(shù)據(jù)
14.2 取消線程
14.2.1 線程的可取消屬性
14.2.2 取消線程與取消點(diǎn)
14.2.3 異步取消的安全性
14.2.4 現(xiàn)場(chǎng)清理
14.3  線程調(diào)度
14.3.1 線程調(diào)度競(jìng)爭范圍
14.3.2 調(diào)度策略與優(yōu)先級(jí)
14.3.3 線程調(diào)度屬性
14.3.4 動(dòng)態(tài)改變線程的調(diào)度策略和優(yōu)先級(jí)
14.4 線程與信號(hào)
14.4.1 信號(hào)動(dòng)作
14.4.2 信號(hào)屏蔽
14.4.3  向線程發(fā)送信號(hào)
14.4.4 等待信號(hào)
14.4.5 一種新的事件通知方法:sigev_thread
14.5 思考與練習(xí)
參考文獻(xiàn)

章節(jié)摘錄

 1.1.3 Bs口UN!x 在UNIX V7期間,UNIX已發(fā)展成為一個(gè)可運(yùn)行于許多不同處理機(jī)上的相當(dāng)穩(wěn)定的操作系統(tǒng)。貝爾實(shí)驗(yàn)室廣泛使用UNIX,但沒有任何技術(shù)服務(wù)。由于美國法律的原因,其父公司AT&T也沒有提供服務(wù)(受1956年美國司法部對(duì)AT&T以及Western Electric公司反托拉斯訴訟協(xié)議的約束,在該協(xié)議的有效期內(nèi),禁止AT&T生產(chǎn)任何與電話或電報(bào)無關(guān)的設(shè)備或從事其他非公共載體通信服務(wù)的商務(wù))。 加州大學(xué)伯克利分校于1974年12月得到了第一個(gè)UNIX許可。在隨后的幾年中,貝爾實(shí)驗(yàn)室研究組的一些成員,包括Ken 7hompson,利用休假在那里講授UNIX,并參加一些研究工作。加州大學(xué)伯克利分校的很多研究生和教授對(duì)UNIX系統(tǒng)產(chǎn)生了極大興趣,其中包括Bill J0y和Chuck H0ley。他們?yōu)檫@個(gè)UNIX開發(fā)了一些實(shí)用程序,包括Pascal編譯器和ed編輯器,這個(gè)編輯器后來成為著名的vi編輯器。BillToy將這些新增的內(nèi)容與一些廣泛發(fā)布的軟件集中在一起,打成一個(gè)軟件包,形成了“Berkeley Software Distribution”(BSD),并在1 978年春季將它以每個(gè)許可協(xié)議50美元售出。同年晚些時(shí)候又推出了2BSD。 據(jù)說前兩個(gè)BSD版本只包含應(yīng)用和實(shí)用程序,并沒有修改也沒有包含UNIX操作系統(tǒng),第一個(gè)包含操作系統(tǒng)的版本是1979年發(fā)布的3BSD。3BSD運(yùn)行于32位的VAX一11/780,這個(gè)版本在內(nèi)核加入了頁式請(qǐng)求和虛擬內(nèi)存等新功能。3BSD虛擬內(nèi)存功能引起了國防高級(jí)研究項(xiàng)目部(the Defense Advanced Research Project Agency,DARPA)的注意,他們決定為伯克利UNIX系統(tǒng)的開發(fā)提供基金。DARPA項(xiàng)目的主要目的之一是集成/CP/IP網(wǎng)絡(luò)協(xié)議包。在DARPA的資助下,UNIX開始蓬勃發(fā)展。1980年產(chǎn)生了后來統(tǒng)稱為4BSD的幾個(gè)版本:4。0BSD(1980)、4.1BSD(1981)、4.2BSD(1983)、4.3BSD(1986)以及4。4BSD(1993)。 伯克利UNIX的研究工作是由計(jì)算機(jī)科學(xué)研究組(Computer Science Research Group,CSRG)進(jìn)行的。4.4BSD之后,由于UNIX系統(tǒng)變得越來越大,以致很難由一個(gè)小組來維護(hù)和發(fā)展,同時(shí)也由于經(jīng)費(fèi)問題,CSRG決定不再繼續(xù)進(jìn)行UNIX的開發(fā)。 伯克利小組對(duì)UNIX作出了許多重要性的貢獻(xiàn)。除了虛擬內(nèi)存和納入了TCP/IP協(xié)議外,BSD UNIX還引入了快速文件系統(tǒng)(Fast File System,F(xiàn)FS)、可靠信號(hào)以及套接字功能。   1.1.4 系統(tǒng)V UNOX  ……   P3

圖書封面

圖書標(biāo)簽Tags

評(píng)論、評(píng)分、閱讀與下載


    UNIX/Linux程序設(shè)計(jì)教程 PDF格式下載


用戶評(píng)論 (總計(jì)6條)

 
 

  •   國人寫的書,內(nèi)容還是不錯(cuò)
  •   快遞很慢慢慢.................呦。
  •   值得一看,,,,,,,,,,,
  •   有些內(nèi)容講得很深刻,書很好
  •   很專業(yè),細(xì)心,很用心的感覺。。
  •   找不到該書的源代碼下載地址。。。。。。跪求!?。。。。。?!
 

250萬本中文圖書簡介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7