尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

目录的读取与访问

目录的读取与访问
📅 发布时间:2026/6/18 23:34:19

文章目录

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

打开目录

  • 头文件:
    • #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;}

相关新闻

  • 过量化导致精度下降?TensorRT补偿机制揭秘
  • 知乎专栏运营:输出深度文章建立专业认知
  • 计算机Java毕设实战-基于JAVA的医院预约挂号管理系统的设计与实现基于Web的医院门诊在线预约挂号系统设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】

最新新闻

  • 深入理解Linux终端控制:tcgetattr与termios结构体实战指南
  • Ultralytics RegionCounter工业级计数落地实践
  • Windows系统优化终极指南:三分钟让你的电脑快如新机!
  • 2022 AI工程化落地实操指南:从大模型到可控生成与指令微调
  • MPC857T勘误文档解析:嵌入式开发中规避硬件设计陷阱的关键
  • 团队冲刺7

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号