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环境高级编程》第四章指针

相关文章
相关标签/搜索