[LINUX] dirent.h使用详解

http://www.liyu8.com/article/84.htm


一直对于linux如何操作目录不了解,最近研究了一下dirent.h,以下是研究结果:

有两个dirent.h:

 

/usr/include/dirent.h

         定义了目录流结构DIR和一些操作目录节点的接口,包括打开、读、关闭,以及对流中的指针位置的操作;十分类似文件操作,其中DIR没有实际定义,估计比较复杂,不过在使用过程中,他只是传来传去,并不需要对他做修改,有点类似文件句柄。常用的接口有:

extern DIR *opendir (__const char *__name) __nonnull ((1));

 

extern int scandir (__const char *__restrict __dir,...)

extern int closedir (DIR *__dirp) __nonnull ((1));

extern struct dirent *readdir (DIR *__dirp) __nonnull ((1));

 

/usr/include/bits/dirent.h

       定义了dir下一个文件节点的数据结构,包括名字,文件类型等属性,通过readdir获得了这个结构后,可以使用stat函数来进一步解析这些属性,以下是各种文件类型

 

enum

  {

    DT_UNKNOWN = 0,

# define DT_UNKNOWN     DT_UNKNOWN

    DT_FIFO = 1,

# define DT_FIFO        DT_FIFO

    DT_CHR = 2,

# define DT_CHR         DT_CHR

    DT_DIR = 4,

# define DT_DIR         DT_DIR

    DT_BLK = 6,

# define DT_BLK         DT_BLK

    DT_REG = 8,

# define DT_REG         DT_REG

    DT_LNK = 10,

# define DT_LNK         DT_LNK

    DT_SOCK = 12,

# define DT_SOCK        DT_SOCK

    DT_WHT = 14

# define DT_WHT         DT_WHT

  };


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值