unix環(huán)境高級編程

unix環(huán)境高級編程

ID:15405314

大小:17.98 MB

頁數(shù):552頁

時間:2018-08-03

unix環(huán)境高級編程_第1頁
unix環(huán)境高級編程_第2頁
unix環(huán)境高級編程_第3頁
unix環(huán)境高級編程_第4頁
unix環(huán)境高級編程_第5頁
資源描述:

《unix環(huán)境高級編程》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。

1、下載第1章UNIX基礎(chǔ)知識1.1引言所有操作系統(tǒng)都向它們運行的程序提供服務(wù)。典型的服務(wù)有執(zhí)行新程序、打開文件、讀文件、分配存儲區(qū)、獲得當(dāng)前時間等等,本書集中闡述了UNIX操作系統(tǒng)各種版本所提供的服務(wù)。以嚴(yán)格的步進方式、不超前引用尚未說明過的術(shù)語的方式來說明UNIX幾乎是不可能的(可能也會是令人厭煩的)。本章從程序設(shè)計人員的角度快速瀏覽UNIX,并對書中引用的一些術(shù)語和概念進行簡要的說明并給出實例。在以后各章中,將對這些概念作更詳細(xì)的說明。本章也對不熟悉UNIX的程序設(shè)計人員簡要介紹了UNIX提供的各種服務(wù)。1.2登錄1.2.1登錄名登

2、錄UNIX系統(tǒng)時,先鍵入登錄名,然后鍵入口令。系統(tǒng)在其口令文件,通常是/etc/passwd文件中查看登錄名。口令文件中的登錄項由7個以冒號分隔的字段組成:登錄名,加密口令,數(shù)字用戶ID(224),數(shù)字組ID(20),注釋字段,起始目錄(/home/stevens),以及shell程序(/bin/ksh)。很多比較新的系統(tǒng)已將加密口令移到另一個文件中。第6章將說明這種文件以及存取它們的函數(shù)。1.2.2shell登錄后,系統(tǒng)先顯示一些典型的系統(tǒng)信息,然后就可以向shell程序鍵入命令。shell是一個命令行解釋器,它讀取用戶輸入,然后執(zhí)

3、行命令,用戶通常用終端,有時則通過文件(稱為shell腳本)向shell進行輸入。常用的shell有:¥Bourneshell,/bin/sh¥Cshell,/bin/csh¥KornShell,/bin/ksh系統(tǒng)從口令文件中登錄項的最后一個字段中了解到應(yīng)該執(zhí)行哪一個shell。自V7以來,Bourneshell得到了廣泛應(yīng)用,幾乎每一個現(xiàn)有的UNIX系統(tǒng)都提供Bourneshell。Cshell是在伯克利開發(fā)的,所有BSD版本都提供這種shell。另外,AT&T的系統(tǒng)V/386R3.2和SVR4也提供Cshell(下一章將對這些不

4、同的UNIX版本作更多說明)。KornShell是Bourneshell的后繼者,它由SVR4提供。KornShell在大多數(shù)UNIX系統(tǒng)上運行,但在SVR4之前,通常它需要另行購買,所以沒有其他兩種shell流行。本書將使用很多shell實例,以執(zhí)行已開發(fā)的程序,其中將應(yīng)用Bourneshell和KornShell都具有的功能。2UNIX環(huán)境高級編程下載Bourneshell是SteveBourne在貝爾實驗室中開發(fā)的,其控制流結(jié)構(gòu)使人想起Algol68。Cshell是在伯克利由BillJoy完成的,其基礎(chǔ)是第6版shell(不是B

5、ourneshell)。其控制結(jié)構(gòu)很像C語言,它支持一些Bourneshell沒有提供的功能,如作業(yè)控制,歷史機制和命令行編輯。KornShell是DavidKorn在貝爾實驗室中開發(fā)的,它兼容Bourneshell,并且也包含了使Cshell非常流行的一些功能,如作業(yè)控制、命令行編譯等。本書將使用這種形式的注釋來描述歷史,并對不同的UNIX實現(xiàn)進行比較。當(dāng)我們了解了歷史緣由后,采用某種特定實現(xiàn)技術(shù)的原因?qū)⒆兊们逦饋怼?.3文件和目錄1.3.1文件系統(tǒng)UNIX文件系統(tǒng)是目錄和文件的一種層次安排,目錄的起點稱為根(root),其名字是

6、一個字符/。目錄(directory)是一個包含目錄項的文件,在邏輯上,可以認(rèn)為每個目錄項都包含一個文件名,同時還包含說明該文件屬性的信息。文件屬性是:文件類型,文件長度,文件所有者,文件的許可權(quán)(例如,其他用戶能否能訪問該文件),文件最后的修改時間等。stat和fstat函數(shù)返回一個包含所有文件屬性的信息結(jié)構(gòu)。第4章將詳細(xì)說明文件的各種屬性。1.3.2文件名目錄中的各個名字稱為文件名(filename)。不能出現(xiàn)在文件名中的字符只有兩個,斜線(/)和空操作符(null)。斜線分隔構(gòu)成路徑名(在下面說明)的各文件名,空操作符則終止一個

7、路徑名。盡管如此,好的習(xí)慣是只使用印刷字符的一個子集作為文件名字符(只使用子集的理由是:如果在文件名中使用了某些shell特殊字符,則必須使用shell的引號機制來引用文件名)。當(dāng)創(chuàng)建一個新目錄時,自動創(chuàng)建了兩個文件名:.(稱為點)和..(稱為點-點)。點引用當(dāng)前目錄,點-點則引用父目錄。在最高層次的根目錄中,點-點與點相同。某些UNIX文件系統(tǒng)限制文件名的最大長度為14個字符,BSD版本則將這種限制擴展為255個字符。1.3.3路徑名0個或多個以斜線分隔的文件名序列(可以任選地以斜線開頭)構(gòu)成路徑名(pathname),以斜線開頭的

8、路徑名稱為絕對路徑名(absolutepathname),否則稱為相對路徑名(relativepathname)。實例不難列出一個目錄中所有文件的名字,程序1-1是ls(1)命令的主要實現(xiàn)部分程序1-1列出一個目錄中的所

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。