news 2026/6/15 16:03:48

飞凌嵌入式ElfBoard-打开目录closedir

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
飞凌嵌入式ElfBoard-打开目录closedir

用于关闭目录流的函数。

1.头文件

#include <sys/types.h>

#include <dirent.h>

2.函数原型

int closedir(DIR *dirp);

3.参数

dirp: 指向 DIR 结构的指针,该结构由 opendir() 返回。它表示要关闭的目录流。

4.返回值

成功: 返回 0。失败: 返回 -1,并设置 errno 以指示错误类型。

5.示例:(打开目录,并查看目录中的文件)

#include <stdio.h>

#include <stdlib.h>

#include <sys/stat.h>

#include <dirent.h>

#include <errno.h>

#include <unistd.h>

int main(){

const char *dir_path = "directory";

struct stat statbuf;

DIR *dir;

struct dirent *entry;

int file_count=0;

printf("File name:%s\n", dir_path);

if (stat(dir_path, &statbuf) == -1) {

perror("stat");

return 1;

}

if (S_ISDIR(statbuf.st_mode)) {

printf("It's the directory: YES\n");

} else {

printf("It's the directory: NO\n");

}

dir = opendir(dir_path);

if (dir == NULL) {

perror("opendir");

return 1;

}

printf("Directory Contents:\n");

while ((entry = readdir(dir)) != NULL) {

printf("\t%s\t%ld\n",entry->d_name,entry->d_ino);

file_count ++;

if (file_count == 3) {

printf("Resetting directory stream...\n");

rewinddir(dir);

}

}

if (errno != 0) {

perror("readdir");

closedir(dir);

return EXIT_FAILURE;

}

closedir(dir);

return 0;

}

接下来需要自行创建directory文件夹,下图是directory文件夹结构:

$ tree directory/

directory/

├── 1

├── 2

├── 3

├── 4.txt

├── 5.txt

└── 6.txt

3 directories, 3 files

6.查看执行结果

File name:directory

It's the directory: YES

Directory Contents:

1 5255834

3 5255836

6.txt 5255839

Resetting directory stream...

1 5255834

3 5255836

6.txt 5255839

.. 5255821

5.txt 5255838

2 5255835

4.txt 5255837

. 5255833

可以看到,首先打印出来要检查的directory文件名,之后检查directory文件为文件夹,在之后开始打印文件夹中的内容,当DIR 结构体的指针指向第三个文件后,使用rewinddir()函数重置目录流,直到打印完毕directory文件夹中的内容。同时我们也看到文件并不是按规律打印出来的,也印证了前面介绍的文件存储顺序取决于文件系统向该目录添加文件时所遵循的顺序,和在文件被删除以后对目录列表中空隙的填补方式,并不是使用ls命令查看到的有序排列的顺序。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 14:38:22

企业微信外部群消息主动推送开发指南

在私域运营的深度开发中&#xff0c;很多开发者面临一个核心诉求&#xff1a;如何基于业务系统触发的消息&#xff0c;自动推送到包含客户的外部群聊中&#xff1f; 不同于内部群简单的 Webhook 机器人&#xff0c;外部群的推送涉及更高标准的权限管理和合规校验。本文将从技术…

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

从“云端”到“身边”:ARM边缘计算让传统产业更智能

当前&#xff0c;培育“新质生产力”已成为推动经济高质量发展的核心任务。对于大量传统制造业、能源、农业等领域的企业而言&#xff0c;这意味着一场深刻的数字化、智能化变革。然而&#xff0c;在升级路上&#xff0c;它们普遍面临几大“拦路虎”&#xff1a;海量生产数据上…

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

Windows 右键集成方案:轻量级图片格式转换工具实践

图片格式转换不是“多此一举”&#xff0c;而是为了适配场景、提升效率、保证兼容、控制质量与体积的必要操作。 它是一款高效简洁的图片格式转换工具。 相较于传统工具需依次执行“启动程序—导入图片—选择输出格式—执行转换—保存文件”等多步操作。 该工具通过集成右键菜…

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

海纳AI亮相北京人工智能创新高地建设推进会:以“AI向善”重塑招聘生态

2026年1月5日&#xff0c;北京中关村国际创新中心海慧厅内人头攒动、暖意融融&#xff0c;一场聚焦“人工智能”的盛会——“2026北京人工智能创新高地建设推进会”拉开帷幕。作为国内AI招聘领域的标杆企业&#xff0c;海纳AI凭借“参展商、生态伙伴和案例输出者”的三重身份深…

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

UE5 C++(11):

&#xff08;52&#xff09; &#xff08;53&#xff09; 谢谢

作者头像 李华