青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

PIGWORLD

學無止境

1.4 文件與目錄

1.4 文件與目錄

文件系統(tǒng)

UNIX文件系統(tǒng)是按層次安排目錄和文件的。起始目錄被稱為根(root),它的名字是一個字符 /

目錄是一個包含目錄項的文件。在邏輯上,可以認為每個目錄項都包含一個文件名,同時還包含說明該文件屬性的信息。文件屬性是:文件類型,文件長度,文件所有者,文件的許可權(例如,其他用戶能否能訪問該文件),文件最后的修改時間等。startfstat函數(shù)返回一個包含所有文件屬性的信息結構。第4章將詳細說明文件的各種屬性。

目錄項事實上存儲在磁盤上,對此區(qū)別于目錄項的邏輯看法。多數(shù)UNIX文件系統(tǒng)的實現(xiàn)并不在目錄項中存儲該目錄項自己的屬性,因為當文件有很多硬連接的時候,很難做到同步保存該文件的屬性。當我們在第四章討論硬連接后,對此將有清晰的認識。

文件名

目錄中的各個名字被稱為文件名。唯一兩個不能出現(xiàn)在文件名中的字符是反斜杠(/)和空字符(null)。反斜杠用來把文件名從路徑名中區(qū)別出來,空字符用來結束一個路徑名。因此,把文件名中可用的字符限制在一般打印字符的子集中是一個好習慣。(我們限制可用字符還因為,如果我們在文件名中使用了shell的特殊字符,我們就必須使用shell的引號機制來引用文件名,這將導致問題復雜化。)

被反斜桿區(qū)分開,并且可選的以反斜桿開頭一個或多個文件名的序列,構成了路徑名。以反斜桿起頭的路徑名稱為絕對路徑;否則,稱為相對路徑。相對路徑涉及到的文件相對于當前目錄。文件系統(tǒng)的根(/)的名字是絕對路徑的特例,它沒有文件名。

例子

列出一個目錄中所有文件的名字并不困難。圖1.3展示了ls1)命令實現(xiàn)的本質。

ls1)符號是UNIX系統(tǒng)手冊的一般表示方法,用來引用特定的項。它引用第一小節(jié)中的ls項。小節(jié)號通常用數(shù)字18表示,同時每一小節(jié)中的所有項都是按字母順序排列的。本書中,我們假定你有一份你的UNIX系統(tǒng)手冊的拷貝。

歷史上,UNIX系統(tǒng)把所有8個小節(jié)集中在UNIX程序員手冊中。隨著頁數(shù)的增加,趨勢變?yōu)榘迅鞴?jié)安排在不同的手冊中:例如一份為用戶準備的,一份為程序員準備的,一份為系統(tǒng)管理員準備的。

一些UNIX系統(tǒng)使用大寫字母在已有的小節(jié)中進一步細分手冊。舉例來說,所有AT&T中的標準輸出/輸入(I/O)函數(shù)在3S小節(jié)中,比如fopen3S)。其它系統(tǒng)用字母來代替數(shù)字表示小節(jié)號,例如用C表示命令。

今天,許多手冊用電子形式進行發(fā)行。如果你的手冊是聯(lián)機手冊,查看手冊中ls命令的方式或許是這樣的:

man  1  ls

或者

man  s1  ls

1.3是一個程序,其打印出目錄中各個文件的名字。如果源碼文件的名字是myls.c,我們按照以下方式把它編譯成默認的可執(zhí)行文件a.out

cc  myls.c

cc1)是早期的C編譯器。在支持GNU C編譯器的系統(tǒng)上,gcc1)是C編譯器。這里,cc通常與gcc相連接(譯者注:原句是Herecc is often linked to gcc。沒翻譯好,期待哪位大蝦指教)。

一些輸出例子如下:

$ ./a.out /dev

.

..

console

tty

mem

kmem

null

mouse

stdin

stdout

stderr

zero

省略其它未顯示的行

cdrom

$ ./a.out /var/spool/cron

can’t open /var/spool/cron: Permission denied

$ ./a.out .dev/tty

can’t open /dev/tty: Not a directory

像上面那樣,我們會以如下的方式展示運行的命令和該命令的輸出:輸入的字符以紅色加粗字體顯示,而程序的輸出以紅色字體顯示。如果對于輸出需要加注釋,我們會以紅色斜體字體顯示注釋。輸入行前面的美元符號是shell打印出來的提示符。我們始終使用美元符號作為shell提示符。

注意文件名并沒有按照字母順序輸出。而ls命令會在打印名字之前現(xiàn)對名字排序。

在這個20行的程序中,許多細節(jié)應當被考慮:

l         首先,我們包含了一個我們自己編寫的頭文件:apue.h。幾乎本書中所有的程序都包含這個頭文件。該頭文件包含了一些標準系統(tǒng)頭文件,并且定義了本書例子中使用的數(shù)值常量和函數(shù)原型。該頭文件的清單在附錄B中。

l         main函數(shù)的聲明使用了ISO C標準的風格。(下章中我們會談到更多ISO C標準。)

l         我們從命令行得到參數(shù)argv[1]作為對象目錄的名字。在第七章,我們將看到main函數(shù)是怎樣被調用的,同時看到命令行參數(shù)和環(huán)境變量是如何傳遞給程序的。

l         由于不同UNIX系統(tǒng)的目錄項格式不盡相同,我們使用opendir函數(shù),readdir函數(shù)和closedir函數(shù)來操作目錄。

l         opendir函數(shù)返回DIR結構的指針,并傳遞該指針給readdir函數(shù)。不必關心DIR結構的細節(jié)。接著在循環(huán)中調用readdir函數(shù),用來讀取每個目錄項。readdir函數(shù)返回一個dirent結構的指針,否則,在無目錄項可讀時返回null指針。我們只需要檢查dirent結構中每個目錄項的名字(d_name)。使用這個名字,我們就可以調用stat函數(shù)(4.2節(jié)介紹)來確定文件的所有屬性。

l         我們調用兩個我們自己編寫的函數(shù)來處理錯誤:err_syserr_quit。從圖1.3的輸出中我們可以看到,err_sys函數(shù)打印出了豐富的信息來描述遇到的錯誤(“Permission denied”和“Not a directory”)。附錄B中列出了這兩個錯誤處理函數(shù)。在1.7節(jié)中我們將更詳細的談到錯誤處理。

l         當程序完成時,以參數(shù)0調用exit函數(shù)。exit函數(shù)結束一個程序。通常,參數(shù)0意味者正常結束,而1255之間的參數(shù)意味著發(fā)生了錯誤。8.5節(jié)中,我們將會學習一個程序(比如shell或者我們自己寫的程序)如何獲得另一個正在執(zhí)行中的程序的exit狀態(tài)。

http://pigworld.blogbus.com/files/1136135551.jpg

1.3 列舉出一個目錄中的所有文件

工作目錄

每個進程都有一個工作目錄,有時又稱為當前工作目錄。所有的相對路徑都從該目錄開始。一個進程能夠用chdir函數(shù)改變它的工作目錄。

例如,相對路徑doc/memo/joe指出memo目錄中的文件或目錄joememo目錄又在doc目錄中,而doc一定是工作目錄下的一個目錄。查看這個相對路徑,我們知道docmemo一定是目錄,但是我們不能確定joe是一個文件還是一個目錄。路徑/usr/lib/lint是一個絕對路徑,它指出了lib目錄中的文件或目錄lintlib目錄在usr目錄中,而usr目錄又在根(root)目錄中。

起始(Home)目錄

當我們登錄時,工作目錄被設定為我們的起始目錄。我們的起始目錄是從密碼文件(1.3節(jié)介紹)中我們的登錄項得到的。

posted on 2006-01-03 22:00 PIGWORLD 閱讀(1001) 評論(0)  編輯 收藏 引用 所屬分類: 《UNIX環(huán)境高級編程(第二版)》翻譯

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美伦理91| 国产九九精品| 一区二区av在线| 亚洲精品在线看| 亚洲国产一区在线| 久久视频这里只有精品| 狂野欧美激情性xxxx欧美| 免费日韩成人| 亚洲精品久久久一区二区三区| 亚洲国产日韩欧美综合久久| 亚洲人成人99网站| 日韩亚洲欧美精品| 久久都是精品| 欧美成人综合网站| 国产精品第13页| 国内精品伊人久久久久av一坑| 亚洲国产岛国毛片在线| 亚洲私拍自拍| 久久久欧美精品| 亚洲国产另类精品专区| 亚洲性夜色噜噜噜7777| 亚洲一本大道在线| 久久久国产亚洲精品| 亚洲国产你懂的| 午夜视频一区二区| 欧美日韩免费在线观看| 国产综合av| 亚洲尤物精选| 欧美激情第五页| 欧美一区二区视频观看视频| 欧美成人免费在线观看| 国产午夜精品视频免费不卡69堂| 亚洲精品国产精品乱码不99 | 国产精品二区影院| 国产精品日韩电影| 狠狠色综合一区二区| 在线午夜精品| 欧美福利小视频| 欧美一区二区三区免费观看视频| 欧美激情一区在线| 黄色成人在线网址| 欧美一区日韩一区| 一区二区三区视频在线播放| 美女主播精品视频一二三四| 国产亚洲视频在线| 亚洲综合精品| 日韩午夜激情av| 欧美国产亚洲另类动漫| 激情av一区| 久久亚洲春色中文字幕久久久| 亚洲一区欧美激情| 国产精品日韩欧美大师| 亚洲性色视频| 99精品国产在热久久婷婷| 欧美国产一区二区三区激情无套| 在线成人激情| 欧美r片在线| 免费观看成人| 亚洲精品日韩久久| 最近中文字幕日韩精品| 欧美大片专区| 在线亚洲精品| 一区二区激情小说| 国产精品拍天天在线| 香蕉乱码成人久久天堂爱免费| 一本色道久久综合狠狠躁篇的优点| 欧美激情欧美狂野欧美精品| 99国产精品| 一区二区日韩精品| 国产精品男人爽免费视频1| 亚洲欧美日韩国产中文| 亚洲欧美国产不卡| 国产欧美日韩一区二区三区| 久久精品国产免费看久久精品 | 久久狠狠亚洲综合| 激情六月综合| 亚洲国产天堂久久国产91| 欧美国产一区视频在线观看| 一区二区电影免费观看| 亚洲一区在线播放| 狠狠爱www人成狠狠爱综合网| 免费试看一区| 欧美高清在线一区| 亚洲男人第一av网站| 欧美亚洲综合在线| 亚洲福利专区| 一区二区三区产品免费精品久久75 | 亚洲激情视频在线观看| 欧美肥婆在线| 国产精品久久久一区麻豆最新章节| 香蕉成人久久| 麻豆av一区二区三区久久| 亚洲视频在线视频| 久久久久国产精品麻豆ai换脸| 亚洲免费高清视频| 性欧美精品高清| 亚洲免费观看| 久久福利影视| 宅男精品导航| 久久美女性网| 亚洲欧美成人| 欧美激情国产高清| 欧美专区在线播放| 欧美精选一区| 男人插女人欧美| 国产精品日日做人人爱| 亚洲国产精品尤物yw在线观看| 国产精品久久久一区麻豆最新章节 | 欧美一区二区在线免费观看| 免费欧美电影| 久久久精品国产一区二区三区| 欧美激情亚洲国产| 噜噜噜在线观看免费视频日韩| 欧美午夜寂寞影院| 欧美国产日韩一二三区| 国产欧美日韩亚洲| 亚洲在线不卡| 亚洲欧美国产日韩天堂区| 欧美激情在线免费观看| 另类国产ts人妖高潮视频| 国产精品一区二区三区久久| 日韩视频在线观看一区二区| 亚洲欧洲日产国产网站| 久久精品免费播放| 久久精品国产清高在天天线| 国产精品久久久久久久久免费樱桃| 亚洲国产美国国产综合一区二区| 激情综合视频| 欧美专区中文字幕| 久久aⅴ乱码一区二区三区| 国产精品国产三级欧美二区| 99在线观看免费视频精品观看| 亚洲高清激情| 美女视频一区免费观看| 欧美激情中文字幕一区二区| 亚洲国产精品成人综合色在线婷婷| 欧美在线日韩精品| 久久精品99国产精品日本| 国产欧美91| 欧美一级淫片aaaaaaa视频| 午夜精品久久久久| 欧美香蕉视频| 亚洲欧美成人| 久久久免费精品视频| 久久精品视频va| 国产精品久久久久免费a∨| 欧美高清一区| 亚洲激情在线观看视频免费| 免费亚洲婷婷| 亚洲国产成人不卡| 亚洲黄色大片| 欧美精品www| 日韩视频一区二区| 午夜精品久久久久久久久| 国产乱肥老妇国产一区二| 午夜天堂精品久久久久| 久久最新视频| 亚洲免费成人av电影| 欧美日韩国产二区| 一本色道久久| 久久久久国产一区二区三区| 极品av少妇一区二区| 欧美大色视频| 亚洲一区视频| 免费永久网站黄欧美| 亚洲免费av网站| 国产日韩精品一区观看| 欧美一区二区视频97| 亚洲七七久久综合桃花剧情介绍| 亚洲一区二区三区四区中文| 国产专区欧美精品| 欧美激情一区二区三区高清视频 | 午夜在线a亚洲v天堂网2018| 一区在线视频观看| 欧美日韩精品欧美日韩精品 | 精品成人一区二区| 欧美日韩免费观看中文| 欧美一二三区精品| 亚洲激情另类| 久久久国产亚洲精品| 夜夜夜久久久| 激情久久一区| 国产精品欧美日韩| 欧美激情一区二区三区 | 亚洲九九九在线观看| 久久国产精品久久精品国产| 亚洲精品久久久久久久久久久| 国产精品久久影院| 欧美黄色一级视频| 久久不射中文字幕| 亚洲视频第一页| 亚洲高清视频在线| 久久天堂av综合合色| 亚洲女人天堂av| 99视频精品免费观看| 亚洲第一区在线观看| 国产日韩精品在线播放| 国产精品ⅴa在线观看h| 欧美精品在线观看播放| 能在线观看的日韩av|