news 2026/3/7 11:31:04

目录的读取与访问

作者头像

张小明

前端开发工程师

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/3/2 13:57:23

证书真的能换来高薪?未来五年大厂HR的“首选”与AI人才的现实冲突

张伟去年还在为转型焦虑&#xff0c;今年已从容应对AI项目评审&#xff1b;而真正改变他轨迹的&#xff0c;并非一纸证书&#xff0c;而是持续学习带来的认知升级当前&#xff0c;人工智能技术快速渗透各行业&#xff0c;相关人才发展路径成为许多职场人关注的话题。市场上各种…

作者头像 李华
网站建设 2026/3/4 6:25:19

白皮书发布计划:建立TensorRT行业权威形象

白皮书发布计划&#xff1a;建立TensorRT行业权威形象 在AI模型日益复杂、部署场景愈发多样化的今天&#xff0c;一个训练完成的深度神经网络从实验室走向真实世界&#xff0c;往往要经历一场“性能炼狱”——明明在研究论文中表现惊艳&#xff0c;一旦上线却因延迟过高、吞吐不…

作者头像 李华
网站建设 2026/3/3 23:16:58

Flask2入门开发详解

Flask 是什么&#xff1f;Flask 是一个轻量级的 Python Web 应用框架&#xff0c;基于 Werkzeug WSGI 工具包 和 Jinja2 模板引擎 构建。它被设计为简单易用、灵活可扩展。主要特点1. 轻量级和简洁from flask import Flask app Flask(__name__)app.route(/) def hello():retur…

作者头像 李华
网站建设 2026/3/5 11:56:03

css学习阶段一

CSS基础入门到实战&#xff1a;3个核心技巧让样式编写更高效作为前端开发的基石&#xff0c;CSS的学习门槛看似较低&#xff0c;但想要写出简洁、可维护的样式却需要掌握一定的技巧。本文针对CSS初学者&#xff0c;从基础语法梳理到实战技巧总结&#xff0c;帮你快速搭建CSS知识…

作者头像 李华
网站建设 2026/3/5 4:52:48

Java计算机毕设之基于Springboot+Vue的电子商务订单管理系统设计与实现(完整前后端代码+说明文档+LW,调试定制等)

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

作者头像 李华