在unix系統中,每個檔案要保持三個時間字段,他們的意義分別如下:
字段說明
例子ls選項
st_atime
st_mtime
st_time
檔案資料的最後訪問時間
檔案按資料的最後修改時間
i節點狀體的最後更改時間
read
write
chmo,chown
-u預設
-c注意st_mtime 指的是檔案內容的最後修改時間,而st_ctime指的是i節點的最後修改時間。i節點之前講過比如檔案訪問許可權,使用者id,檔案的連線數。但沒有更改檔案的實質資料的內容,因為檔案的i節點資訊和檔案的資料是分開反的。所以除了檔案的資料修改時間以外,還是要更改狀態時間的。
注意 系統並不儲存對乙個i節點 的最後一次訪問時間,所以access和stat函式並不更改這三個時間裡的任何乙個。
其中 ls命令對檔案時間進行排序顯示。比如 -r是按照最新修改的時候先後排序。-u是按照其訪問時間進行排序。-c則是按照更改狀態的時間來排序。
表4-9 各種函式對訪問、修改和更改狀態時間的作用
上表顯示了各種函式對檔案三種時間的作用。4.14節說過,目錄是包含目錄項的檔案,增加,刪除或者修改目錄項會影響到與其所在相關的三個時間。
這就是為什麼上表中有兩列。乙個是引用檔案或目錄,另一是引用檔案的父目錄。
比如建立乙個新檔案會影響到包含此新檔案的目錄,也會影響到該新檔案的i節點。但是讀或者寫只對本檔案及i節點,而對目錄沒有影響。
unix環境高階程式設計 4 3 檔案型別
我們都知道在unix系統中,檔案分為兩種 普通檔案和目錄。unix大多數都是這些檔案型別。但是也有另外一種。下面簡單介紹一下檔案型別 1 普通檔案。最常見的檔案型別。2 目錄檔案。這種檔案包含了其他檔案的名字以及指向與這些檔案有關的資訊指標。對乙個目錄檔案具有讀許可權的任一程序都可以讀該目錄的內容,...
Unix環境高階程式設計 一 檔案I O
unix系統中大多數檔案i o只需用到五個函式 open read write lseek close。本章說介紹的i o是不帶緩衝的,即 每個read和write都呼叫核心中的乙個系統呼叫。不是iso c的組成部分。對於核心而言,所有開啟的檔案都通過檔案描述符引用。在中定義三個標準的檔案描述符 s...
Unix環境高階程式設計學習筆記(二) 檔案IO
談linux下的檔案操作,我們首先需要了解程序表,這是被每個程序所維護的一張開啟檔案的對映表,參照下圖。索引值是檔案描述符,與之相關聯的節點包含fd flag以及乙個指向file table的指標。其中fd flag主要包含close on exec標記,該標記的作用在於當開闢其他程序呼叫exec ...