C语言readdir()函数:读取目录函数_墨尔基阿德斯的博客-程序员秘密

技术标签: Linux  

相关函数: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; //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];
};

d_type的值为:

  • DT_BLK This is a block device.
  • DT_CHR This is a character device.
  • DT_DIR This is a directory.
  • DT_FIFO This is a named pipe (FIFO).
  • DT_LNK This is a symbolic link.
  • DT_REG This is a regular file.
  • DT_SOCK This is a UNIX domain socket.
  • DT_UNKNOWN The file type is unknown.

返回值:成功则返回下个目录进入点. 有错误发生或读取到目录文件尾则返回NULL.

附加说明:EBADF 参数dir 为无效的目录流。

注意:每次使用readdir后,readdir会读到下一个文件,readdir是依次读出目录中的所有文件,每次只能读一个
范例

#include <sys/types.h>
#include <dirent.h>
#include <unistd.h>
int main(int argc , char* argv[])
{
    
    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);

  return 0;
}

执行:

d_name : .
d_name : ..
d_name : init.d
d_name : rc0.d
d_name : rc1.d
d_name : rc2.d
d_name : rc3.d
d_name : rc4.d
d_name : rc5.d
d_name : rc6.d
d_name : rc
d_name : rc.local
d_name : rc.sysinit
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wddpfx/article/details/118927927

智能推荐

解决 uwsgi: error while loading shared libraries: libssl.so.1.0.0:cannot open shared object file:_妖精哪里跑的博客-程序员秘密

解决 uwsgi: error while loading shared libraries: libssl.so.1.0.0:cannot open shared object file: no such file or directory解决方法: 在Anaconda的安装目录lib下复制 libssl.so.1.0.0 到 /lib64(32位linux到/lib) 下即可,缺哪个复制哪...

时针、分针和秒针是群快乐的好伙伴_秒针的计算最简单(second / 60) * 360 + 90;为什么加上_乱乱熊猫的博客-程序员秘密

最近发现自己好久没有研究过算法了,达尔文坚持进化论,而拉马克则提出“用尽废退”理论。在学术领域我还是比较赞同拉马克的观点。程序设计道理也是一样的,只有多看优秀的代码的,学习优雅的设计框架和思想,经过充分的思考并将其移花接木般应用在自己的程序里才是学习的本质。以前我们的高中老师管这个技能叫做“能力迁移”。    曾经在哪儿看到过一道面试还是笔试题,具体及不太清楚了,当时没多想。这几天它突然从我脑

oracle/plsql中decode()函数用法_plsql decode_广交天下好友的博客-程序员秘密

在Oracle/ PLSQL的,DECODE函数有一个IF - THEN - ELSE语句的功能。DECODE函数的语法是:decode( expression , search , result [, search , result]... [, default] )expression值进行比较。search 是对表达相比的价值。result是返回的值,如果表达式等于搜索。

Android Studio如何安装Flutter(windows系统)?_android studio 安装flutter_谭老鸭的博客-程序员秘密

爆肝8小时精心打造,全网最细最全,Android Studio安装Flutter攻略

提高新股申购中签率——程序猿五招_股票打新股中签率 写小程序_gogo_hua的博客-程序员秘密

新股申购大战将近,现教你五种方法教你提高新股申购中签率,让你“打新”中签率提高数倍一:选中间时间段申购 根据历史经验,刚开盘或收盘时下单申购中签的概率小,最好选择中间时间段申购,如选择10:30~11:30和13:00~14:00的时间段下单。不过也有经验表明在14:30的时候申购命中率高。二:集中申购一只新股 由于参与新股申购时资金将被锁定一段时间,如果未来一周内同时发行几只新股

杭电ACM2036java做法_SuperBeauty的博客-程序员秘密

改革春风吹满地Problem Description“ 改革春风吹满地,不会AC没关系;实在不行回老家,还有一亩三分地。谢谢!(乐队奏乐)”话说部分学生心态极好,每天就知道游戏,这次考试如此简单的题目,也是云里雾里,而且,还竟然来这么几句打油诗。好呀,老师的责任就是帮你解决问题,既然想种田,那就分你一块。这块田位于浙江省温州市苍南县灵溪镇林家铺子村,

随便推点

awk详细教程-基础篇_awk 教程_surpassLiang的博客-程序员秘密

1.前言awk是Unix环境下一个强大的文本分析工具,相对于grep和sed,awk在其对数据分析并生成报告时,显得尤为强大。它还有许多精心设计的特性,支持awk脚本语言执行,从而极大程度提高重用率。其功能就是把文件默认逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。这里之所以说默认,是因为这里也是有配置项进行修改的。2.环境准备这里主要准备一个文本文件,名称建议为awk.txt,内容如下:1 this is a test2 Are you like awk3

AR内容开发解密,带你从深挖掘AR技术_ARqq1234的博客-程序员秘密

2016年被称为VR元年,可见火爆程度,但是我要告诉你,其实还有一种技术AR(增强现实)技术,才是下一个真正的“风口”技术。可以预见的是,未来AR应用爆发之时,必将超越VR产业规模,开拓千亿级市场空间!     AR技术不仅在与VR技术相类似的应用领域,诸如尖端武器、飞行器的研制与开发、数据模型的可视化、虚拟训练、娱乐与艺术等领域具有广泛的应用,而且由于其来的发展趋势,因为它能够带给人们更...

马云说了:年轻人,你不去创业,不去 旅游_承影v的博客-程序员秘密

旅游" title="马云说了:年轻人,你不去创业,不去 旅游" style="margin:0px; padding:0px; border:0px; list-style:none">      马云说了:年轻人,你不去创业,不去 旅游 ,不去接受新鲜事物,不去给身边的人带去正能量,整天挂着QQ,看看微信 ,逛逛淘宝,拿着包月的工资 ,干着不计流量的工作。千篇一律的重复着昨天的生活,干

歌星大赛_blueamber的博客-程序员秘密

//在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。//选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。//基本思路:10个元素的数组,找到最大值和最小值并置为0,然后求和 求平均值//*加上的思考//题目条件不变,但考虑同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接返平均分)和最不公平(即与平

python通过thrift连接hive,异步执行查询_L瑜的博客-程序员秘密

在开始之前,我们需要具备一些基础知识:什么是hive? hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。hive对外暴露出来的用法,基本上和Mysql相同,但是它能做到Mysql做不到的对大数据处理,例如几十亿条数据,放在Mysql中,必然不堪重负,但在hive中,举重若轻

CentOS7网络配置-NAT静态IP_如何使两个centos7虚拟机ip不同_戴着假发的程序员的博客-程序员秘密

VMware网络设置[1]打开虚拟机网络编辑器[2][3] 记住你自己的网关,我这里的网关是 192.168.92.2[4] 设置虚拟机的网络选项[5] 设置网络模式为NAT[6] 启动虚拟机,编辑网卡文件查看网络信息:ip addr编辑网卡:vi /etc/sysconfig/network-scripts/ifcfg-ens33打开文件后按 i 编辑内容如下:保存退出。[7]重启网络查看网络:...

推荐文章

热门文章

相关标签