opendir函数和readdir函数内涵及用法
来源:互联网 发布:linux下docker安装部署 编辑:程序博客网 时间:2024/05/24 03:48
opendir函数
头文件:#include <sys/types.h> #include <dirent.h>
函数:DIR *opendir(const char *name);
含义: opendir()用来打开参数name 指定的目录, 并返回DIR*形态的目录流, 和open()类似, 接下来对目录的读取和搜索都要使用此返回值.
关于DIR : 详细:http://blog.csdn.net/u012349696/article/details/50083787
先说说DIR这一结构体,以下为DIR结构体的定义:
- struct __dirstream
- {
- void *__fd;
- char *__data;
- int __entry_data;
- char *__ptr;
- int __entry_ptr;
- size_t __allocation;
- size_t __size;
- __libc_lock_define (, __lock)
- };
- typedef struct __dirstream DIR;
DIR结构体类似于FILE,是一个内部结构,以下几个函数用这个内部结构保存当前正在被读取的目录的有关信息(摘自《UNIX环境高级编程(第二版)》)。函数 DIR *opendir(const char *pathname),即打开文件目录,返回的就是指向DIR结构体的指针,而该指针由以下几个函数使用:
- struct dirent *readdir(DIR *dp);
- void rewinddir(DIR *dp);
- int closedir(DIR *dp);
- long telldir(DIR *dp);
- void seekdir(DIR *dp,long loc);
关于DIR结构,我们知道这么多就可以了,没必要去再去研究他的结构成员。
.....
readdir函数
头文件:#include<sys/types.h> #include <dirent.h>
函数:struct dirent *readdir(DIR *dir);
含义:readdir()返回参数dir 目录流的下个目录进入点。
struct dirent
{
ino_t d_ino; //d_ino 此目录进入点的inode
ff_t d_off; //d_off 目录文件开头至此目录进入点的位移
signed short int d_reclen; //d_reclen _name 的长度, 不包含NULL 字符
unsigned char d_type; //d_type d_name 所指的文件类型 d_name 文件名
har d_name[256];
};
closedir函数
头文件:#include<sys/types.h> #include <dirent.h>
函数;closedir(DIR *dir);
含义:关闭dir流 ;
ls命令编写 练习
#include <stdio.h>#include <string.h>#include <dirent.h>#include <sys/types.h>#include <sys/stat.h>#include <stdlib.h>#include <fcntl.h>#include <unistd.h>void do_ls(char *);int main(int ac,char *av[]){ if(ac == 1)do_ls(".");//打开当前目录else{while(ac--){printf("%s:\n",*++av);do_ls(*av);}}}void do_ls(char dirname[]){DIR *dir_ptr;struct dirent *direntp;dir_ptr = opendir(dirname);
if(dir_ptr == NULL){fprintf(stderr,"Ls: can not open %s",dirname);}else { direntp = readdir(dir_ptr);while(direntp == NULL){printf("%s\n",direntp->d_name);}closedir(dir_ptr);}}
- opendir函数和readdir函数内涵及用法
- 函数opendir()、closedir()、rewinddir()、dir()和readdir()
- opendir 、closedir 、readdir 目录函数
- 4.21 opendir、readdir和closedir函数-读目录
- linux 下 opendir 和 readdir 函数的应用
- Linux目录操作函数:opendir/readdir/closedir
- opendir()和readdir()的具体用法
- opendir()和readdir()的具体用法
- linux opendir 和 readdir , closedir用法
- linux opendir 和 readdir , closedir用法
- 文件系统中opendir 和 readdir , closedir用法
- 10Linux服务器编程之:opendir()函数,readdir()函数,rewinddir()函数,telldir()函数和seekdir()函数,closedir()函数
- opendir、readdir、rewinddir、closedir、telldir、seekdir、stat函数和DIR、dirent、stat结构体详解
- linux 下opendir readdir 在windows下的替代函数
- linux 下opendir readdir 在windows下的替代函数
- linux 目录操作函数opendir readdir closedir,文件stat
- linux 下opendir readdir 在windows下的替代函数
- Linux 文件操作函数 opendir()、readdir()、closedir()、stat()
- CodeForces 598D Igor In the Museum 暴力
- Paint 介绍
- Thread类和Runable接口
- char *ptr=&character; cout<<ptr<<endl;为何乱码
- Linux制作补丁与打补丁简单用法
- opendir函数和readdir函数内涵及用法
- 在ACRGIS Javascript中加入谷歌街道图和卫星图
- Tomcat与Apache HTTP服务器集成
- 分布式文件系统FastDFS原理介绍
- 182 Examine the following command: SQL> ALTER TABLE booking SHRINK SPACE COMPACT; Which activity is
- 第一行代码总结:13.3定制自己的日志工具
- 牛腩新闻发布系统总结
- 千万级PV网站架构
- Linux下常用的命令技巧