4.3 文件類型

  至此我們已經介紹了兩種不同的文件類型:普通文件和目錄。UNIX系統的大多數文件時普通文件或目錄,但是也有另外一些文件類型。文件類型包括如下幾種。

    (1)普通文件(regular file)。這是最常用的文件類型,這種文件包含了某種形式的數據。至於這種數據是文本還是二進制數據,對於UNIX內核而言並無區別。對普通文件內容的理解由處理該文件的應用程序進行。

    (2)目錄文件(directory file)。這種文件包含了其他文件的名字以及指向與這些文件有關信息的指針。對一個目錄文件具有讀權限的任一進程都可以讀該目錄的內容,但只有內核可以直接寫目錄文件。進程必須使用本章介紹的函數才能更改目錄。

    (3)塊特殊文件(block special file)。這種類型的文件提供對設備(如磁盤)帶緩衝的訪問,每次訪問以固定長度爲單位進行。

    (4)字符特殊文件(character special file)。這種類型的文件提供對設備不帶緩衝的訪問,每次訪問長度不變。系統中的所有設備要麼是字符特殊文件,要麼是塊特殊文件。

    (5)FIFO。這種類型的文件用於進程間通信,有時也稱爲命名管道(named pipe)。

    (6)套接字(socket)。這種類型的文件用於進程間的網絡通信。套接字也可用於在一臺宿主機上進程之間的非網絡通信。

    (7)符號鏈接(symbolic link)。這種類型的文件指向另一個文件。

    文件類型信息包含在stat結構的st_mode成員中。可以用圖4-1中宏確定文件類型。這些宏的參數都是stat結構中的st_mode成員。

    圖4-1略。

    POSIX.1允許實現將進程間通信(IPC)對象(如消息隊列和信號量等)說明爲文件。圖4-2中的宏可用來從stat結構中確定IPC對象的類型。這些宏與圖4-1中的不同,它們的參數並非st_mode,而是指向stat結構的指針。

    消息隊列、信號量以及共享存儲對象等將在第15章中討論。但是,本書討論的4中UNIX系統都不將這些對象表示爲文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章