作用

在Linux中, readdir是常用来遍历文件夹下的文件

使用方法

通常readdir都是与opendir配合使用. 通过opendir打开的目录, 使用readdir来进行遍历读取

#include

#include

// 通过全路径打开目录

DIR *opendir(const char *name);

// 通过目录的fd来打开

DIR *fdopendir(int fd);

#include

// 传入DIR, 返回目录相关信息

struct dirent *readdir(DIR *dirp);

// 在glibc的2.1.9版本前使用该函数, 而后使用readdir代替

int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);

返回的dirent即 : directory_entry , 结构如下

struct dirent {

ino_t d_ino; // 文件的inode

off_t d_off; // 该文件相对于文件夹的偏移量

unsigned short d_reclen; // d_name的长度

unsigned char d_type; // 文件类型, 例如管道, Socket , Block等

char d_name[256]; // 文件名

};

事例

例如查找一个目录下为name的文件

DIR * dirp = NULL;

// 通过opendir打开目录

dirp = opendir(".");

if (dirp == NULL) {

return (ERROR);

}

len = strlen(name);

dirent * dp = NULL;

// 开始遍历dirp文件夹

while ((dp = readdir(dirp)) != NULL) {

// 比较dp->d_name与name的值, 如果匹配则返回

if (dp->d_namlen == len && strcmp(dp->d_name, name) == 0) {

(void)closedir(dirp);

return (FOUND);

}

}

// 关闭dir

(void)closedir(dirp);

return (NOT_FOUND);

linux的readir函数,Linux编程--readdir相关推荐

  1. linux的readir函数,readdir函数解析

    函数原型: struct dirent *readdir(DIR *dirp); 首先纠正一个很多人都错误理解的事实,readdir不是系统调用,它是glibc的封装函数,而且readdir系统调用是 ...

  2. linux的scandir函数,linux C++ scandir 的使用

    () 头文件 #include () 函数定义 int scandir(const char *dir,struct dirent **namelist,int (*filter)(const voi ...

  3. linux下wait函数,Linux wait函数详解

    wait和waitpid出现的原因 SIGCHLD --当子进程退出的时候,内核会向父进程SIGCHLD信号,子进程的退出是个异步事件(子进程可以在父进程运行的任何时刻终止) --子进程退出时,内核将 ...

  4. linux使用模板函数,Linux常用C函数

    Linux常用C函数Tag内容描述: 1.Linux常用C函数 接口处理篇 accept(接受socket连线) 相关函数 socket,bind,listen,connect 表头文件 #inclu ...

  5. linux c 绝对值函数,linux c 简介

    --- title: linux c 简介 date: 2020-07-19 updated: 2020-07-19 --- # Preface # todo linux c http://blog. ...

  6. linux socket读写函数,Linux网络编程入门

    第一个函数是socket函数. socket函数的Linux头文件以及函数定义如下: #include int socket(int domain, int type, int protocal); ...

  7. linux下sig_pipe函数,linux socket编程 出现信号SIGPIPE,分析及解决

    在编写一个仿QQ软件,C/S模式.出现的问题:当客户机关闭时,服务器也随着关闭,纠结很久之后,我gdb了下,出现下面提示信息: Program received signal SIGPIPE, Bro ...

  8. linux中creat-file函数,Linux应用程序-文件编程-file_creat()函数的问题

    * **系统调用:创建一个文件 **函数原型:int creat(const char *filename,mode_t mode); **参数:filename->要创建的文件名(包含路径,缺 ...

  9. linux下opendir函数,linux 下 opendir 和 readdir 函数的应用

    #include #include #include #include #include #include void printall(const char *path, int max){ DIR ...

最新文章

  1. Python学习记录day2
  2. 建设世界级数据中心正当时
  3. java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray
  4. 使用.NET Core创建Windows服务 - 使用.NET Core工作器方式
  5. android项目编译命令行,命令行编译Android项目
  6. 初次使用Apache、ip地址、防火墙、域名、DNS、hosts文件、端口、URL介绍、Apache配置文件、配置虚拟主机、请求响应、http协议、
  7. Spoon新建repository的时候
  8. Oracle Spatial常用方法记录
  9. Python 从协议到抽象基类
  10. 【SpringCloud实战】一次开发中使用Feign添加动态Header问题思考
  11. winform 实现qq代理_「设计模式」代理模式:神奇的代理模式,节省了我80%开发时间...
  12. Libcef源码下载与编译
  13. 研表究明,汉字的序顺并不定一能影阅响读,比如当你看完这句话后,才发这现里的字全是都乱的。...
  14. php网站后台密码忘记,phpweb忘记后台密码
  15. node静态服务器tudo
  16. C++: 函数重载(c++函数原型、函数重载要素)
  17. flutter CustomScrollView中使用Swiper做轮播图问题
  18. 频域特征-Fbank
  19. Eclipse Che安装使用
  20. C/C++编程学习 - 第5周 ⑧ 判断直角三角形

热门文章

  1. 计算机毕业设计Java无极服装出租管理系统(源码+系统+mysql数据库+Lw文档)
  2. web开发网上培训,jquery显示与隐藏动画
  3. 概率论-随机事件与概率思维导图
  4. 电脑检测工具eve_使用windows自带的工具来检测电脑硬件,轻松排除故障!
  5. mysql安装及配置服务
  6. Android视频播放器——JiaoZiVideoPlayer的简单使用
  7. Android耳机线控详解,蓝牙耳机按钮监听(仿酷狗线控效果)
  8. 报告解读下载 | 6月《中国数据库行业分析报告》重磅发布!精彩抢先看!
  9. 超好用的mac字幕软件:ArcTime Pro for Mac中文免费版
  10. 【作业】python——小说Walden的词频统计,并从高到低排序