news 2026/6/15 17:21:20

目录的读取与访问

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
目录的读取与访问

文章目录

  • 打开目录
  • 关闭目录
  • 访问目录
  • 例程:获取文件夹的内容

打开目录

  • 头文件:
    • #include <dirent.h>
  • 函数原型:
    • DIR * opendir(const char *name);
    • DIR * fdopendir(int fd);//使用文件描述符,要配合open函数使用
  • 返回值:
    • 成功时返回目录流指针,出错时返回NULL

DIR是用来描述一个打开的目录文件的结构体类型,typedef重命名而来的类型名

  • vim /usr/include/dirent.h
  • 在C语言的标准库中,DIR 类型被用于表示一个目录流。它通常定义在 <dirent.h> 头文件中,并用于目录的遍历操作。DIR 类型可能是一个不完整类型(incomplete type),这意味着它的具体实现细节在<dirent.h> 头文件中并没有完全展开,而只是声明了它的存在,这样的设计允许库的实现者在不暴露内部数据结构的情况下提供接口

关闭目录

  • 头文件:
    • #include <dirent.h>
  • 函数原型:
    • int closedir(DIR * dirp);
  • 返回值:
    • 成功时返回0,出错时返回EOF

访问目录

  • 头文件:
    • #include <dirent.h>
  • 函数原型:
    • struct dirent * readdir(DIR * dirp);
  • 参数
    • 目录流指针DIR * dirp
  • 返回值:
    • struct dirent 描述目录流中一个目录项的结构体类型
    • 成功时返回目录流dirp中一个目录项
    • 出错或到末尾时返回NULL

struct dirent 和 DIR 是两个不同的结构体

例程:获取文件夹的内容

  • 打印指定的目录下的文件的名称
#include<stdio.h>#include<dirent.h>intmain(intargc,char*argv[]){DIR*dirp;structdirent*dp;if(argc<2){printf("Usage : %s <directory>\n",argv[0]);return-1;}if((dirp=opendir(argv[1]))==NULL){perror("opendir");return-1;}while((dp=readdir(dirp))!=NULL){if(dp->d_type==DT_DIR){printf("dirent file: %s\n",dp->d_name);}elseif(dp->d_type==DT_REG){printf("regular file: %s\n",dp->d_name);}else{printf("%s\n",dp->d_name);}}closedir(dirp);return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 9:31:38

Slack/Discord社群建设:打造活跃的技术交流圈

NVIDIA TensorRT&#xff1a;构建高效AI推理系统的高性能优化引擎 在自动驾驶的感知系统中&#xff0c;每毫秒都至关重要——目标检测模型需要在20ms内完成前向推理&#xff0c;才能保证车辆对突发状况做出及时反应。而在云端推荐系统里&#xff0c;单个GPU每秒要处理上万次请…

作者头像 李华
网站建设 2026/6/15 13:08:35

【课程设计/毕业设计】基于SpringBoot的热门游戏赛事平台设计与实现游戏赛事-赛事系统-赛事系统源码【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/15 13:57:08

计算机Java毕设实战-基于SpringBoot的热门游戏赛事平台设计与实现基于SpringBoot的游戏赛事管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/15 10:25:04

springboot_ssm《大美河山旅游》景点门票预订网站的设计与实现

目录具体实现截图系统所用技术介绍写作提纲核心代码部分展示结论源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 springboot_ssm《大美河山旅游》景点门票预订网站的设计与实现 系统所用技术介绍 本毕业设计项目基于…

作者头像 李华
网站建设 2026/6/15 10:25:38

【软件测试面试】职言 | 40个软件测试面试题,找工作看过来

初级难度 如果你在这个领域没有太多经验&#xff0c;并且刚刚开始入行&#xff0c;这几个问题对于刚起步的测试人员来说&#xff0c;在面试时经常常会问到。 1. 你对软件测试的理解是什么&#xff1f; 软件测试是用来判断软件程序的有效性、准确性和可用性的程序。因此&…

作者头像 李华
网站建设 2026/6/15 16:22:00

物联网边缘设备:轻量级TensorRT运行时部署方案

物联网边缘设备&#xff1a;轻量级TensorRT运行时部署方案 在智能制造车间的一角&#xff0c;一台搭载Jetson Xavier NX的视觉检测设备正以每秒30帧的速度扫描流水线上的电子元件。它需要在20毫秒内完成缺陷识别并触发剔除机制——这不仅是对算法精度的考验&#xff0c;更是对推…

作者头像 李华