UNIX中的文件類型

Unix的文件類型信息包含在stat結構的st_mode成員中能夠用宏肯定文件類型:編程

  1. 普通文件(S_ISREG()):包含某種形式數據的經常使用文件類型
  2. 目錄文件(S_ISDIR()):這種文件包含其餘文件的名字以及指向與這些文件有關信息的指針。只有內核能夠寫目錄文件,對其有讀權限的進程能夠讀文件
  3. 塊特殊文件(S_ISBLK()):提供對設備帶緩衝的訪問,每次訪問以固定長度爲單位進行。(塊設備在內核中的表現類型?)
  4. 字符特殊文件(S_ISCHR()):提供對設備不帶緩衝的方位,訪問長度可變(字符設備?)
  5. FIFO(S_ISFIFO()):這種文件用於進程間通訊,也稱爲管道(因此管道在內核裏也看作一個文件來操做)
  6. 套接字(S_ISOCK()):這種文件用於進程間網絡通訊
  7. 符號連接(S_ISLNK):這種文件類型,指向另外一個文件。

能夠用文件名後的宏來肯定文件類型,宏調用舉例:網絡

#include<sys/stat.h>

lstat(pathname, &buf);

S_ISREG(buf.st_mode);  //返回bool類型

  

stat結構包含於文件有關的信息結構,stat結構的實際定義可能隨着實現有所不一樣,可是基本形式是:spa

struct stat{
   mode_t st_mode; //文件類型和模式
   ino_t st_ino;        //i節點號  
 …… };

 

 from:《UNIX環境高級編程》第四章指針

相關文章
相關標籤/搜索