APUE 學習筆記(三) 文件和目錄

1. 文件類型

文件類型信息包含在 struct stat 裏的 st_mode 成員網絡

(1)普通文件, unix內核並不區分文本文件和二進制文件
(2)目錄文件,這種文件包含了其餘文件的名字以及指向這些文件有關信息的指針
(3)塊特殊文件
(4)字符特殊文件
(5)FIFO, 經常使用於進程間通訊,也稱爲管道
(6) 套接字socket,經常使用於進程間網絡通訊
(7)符號連接 ( 必須使用lstat函數,獲取的是符號連接自己的類型信息,而不是符號連接所指向的文件的類型信息)
 

2.文件長度

stat結構成員st_size 以字節爲單位,此字段只對 普通文件、目錄文件、符號連接有意義
對於符號連接,st_size 成員表示 該符號連接所指向的文件的文件名長度
 

3.文件系統

 
i節點是固定長度的記錄項,包含有關文件的大部分信息
 
(1)每一個i節點中都有一個連接計數,其值是指向該i節點的目錄項數。 只有當連接計數減小至0時,才能夠刪除該文件
stat結構體中 st_nlink成員表示連接計數。這種類型成爲硬連接
 
(2)符號連接:該文件的實際內容包含了該符號連接所指向的文件的名字
符號連接是指向一個文件的間接指針,硬連接直接指向文件的i節點
硬連接有一些限制:
a.硬連接一般要求連接和文件位於 同一文件系統中
b.只有超級用戶才能建立指向目錄的硬連接
符號連接沒有這兩個限制,任何用戶均可以建立符號連接,且沒有文件系統限制
 
用open打開文件時,若是傳遞給open函數的路徑名指定了一個符號連接,那麼open跟隨此連接到達你所連接的文件,若是該文件不存在,那麼open出錯
open函數跟隨符號連接,讀取符號連接自己必須使用 readlink函數
 
(3)每一個分區的文件系統各自對它們的i節點進行編號,所以不能是一個目錄項指向另外一個文件系統的i節點,也就是ln命令不能跨越文件系統的緣由
 

4.目錄操做

opendir
readdir
seekdir
closedir
mkdir
rmdir
相關文章
相關標籤/搜索