opendir() readdir()目录流

相关函数:open,opendir,closedir,rewinddir,seekdir,telldir,scandir 
表头文件:#include     <sys/types.h> 
                              #include     <dirent.h> 
定义函数:   struct     dirent     *readdir(DIR   *dir) 
函数说明:   readdir()返回参数dir目录流的下个目录进入点。结构dirent定义如下: 
struct     dirent 

        ino_t     d_ino; 
        ff_t       d_off; 
        signed     short   int     d_reclem; 
        unsigned     char     d_type; 
        char       d_name[256]; 


d_ino                       此目录进入点的inode 
d_off                       目录文件开头到此目录进入点的位移 
d_reclen               _name的长度,不包含NULL字符 
d_type                   d_name所指的文件类型 
d_name                 文件名 

返回值:成功则返回下个目录进入点。有错误发生或读取到目录文件尾则返回NULL 
附加说明:   EBADF参数dir为无效的目录流 

范例: 
/*   读取/etc/rc.d目录文件结构,然后显示该目录下的文件   */ 

#include     <sys/types.h> 
#include     <dirent.h> 
#include     <unistd.h> 

main() 

          DIR     *dir; 
          struct     dirent     *ptr; 
          int     i; 

          dir=opendir( "/etc/rc.d "); 
          while((ptr=readdir(dir))   !=   NULL) 
          { 
                    printf( "d_name:   %s\n ",   ptr-> d_name); 
          } 
          closedir(dir); 

}   



opendir(打开目录)
相关函数 open,readdir,closedir,rewinddir,seekdir,telldir,scandir
表头文件 #include<sys/types.h>
#include<dirent.h>
定义函数 DIR * opendir(const char * name);
函数说明 opendir()用来打开参数name指定的目录,并返回DIR*形态的目录流,和open()类似,接下来对目录的读取和搜索都要使用此返回值。
返回值 成功则返回DIR* 型态的目录流,打开失败则返回NULL。
错误代码 EACCESS 权限不足
EMFILE 已达到进程可同时打开的文件数上限。
ENFILE 已达到系统可同时打开的文件数上限。
ENOTDIR 参数name非真正的目录
ENOENT 参数name 指定的目录不存在,或是参数name 为一空字符
串。
ENOMEM 核心内存不足。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值