news 2026/4/18 6:25:36

飞凌嵌入式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/4/17 22:07:28

破解物流分拣效率瓶颈:ARM工控机驱动的智能调度方案深度解析

在日吞吐量数以万计件的现代智慧物流分拣中心&#xff0c;AGV&#xff08;自动导引运输车&#xff09;如同不知疲倦的“搬运工”&#xff0c;穿梭于货架与分拣台之间。然而&#xff0c;随着订单量激增、SKU种类繁杂&#xff0c;AGV数量从几十台增加到数百台&#xff0c;一个核心…

作者头像 李华
网站建设 2026/4/5 10:38:57

数据在田间思考:ARM边缘网关实现灌溉的秒级决策与控制

在广袤的农田里&#xff0c;灌溉一直是门“经验活”。看天吃饭、凭感觉浇水&#xff0c;不仅浪费了宝贵的水资源&#xff0c;还可能影响作物生长&#xff0c;甚至导致土壤盐碱化。如今&#xff0c;随着智慧农业的兴起&#xff0c;精准灌溉成为可能。而在这背后&#xff0c;一个…

作者头像 李华
网站建设 2026/4/18 6:24:47

大数据与财务管理专业就业岗位方向

2026年大专大数据与财务管理专业毕业生可选择的就业岗位涵盖数据分析、财务、金融科技等多个领域。该专业结合了大数据技术与财务管理知识&#xff0c;培养具备数据处理能力和财务分析能力的复合型人才。以下是详细的就业方向及岗位分析。数据分析类岗位岗位名称岗位职责技能要…

作者头像 李华
网站建设 2026/4/16 17:12:19

敏捷冲刺计划完全指南:理论框架、实践方法与工具体系

你大概率参加过这样的冲刺计划会&#xff1a;一屋子人对着Jira看板&#xff0c;产品经理念需求&#xff0c;工程师估算时间&#xff0c;最后列出一堆“理想情况”下能完成的任务。结果两周后发现&#xff1a;有的卡在依赖上&#xff0c;有的越做越大&#xff0c;还有的做完才发…

作者头像 李华
网站建设 2026/4/17 1:13:43

‌性能测试左移:早期介入方法

性能测试左移的必要性与定义‌在当今快速迭代的软件开发环境中&#xff0c;性能问题往往在后期阶段才被发现&#xff0c;导致高昂的修复成本和项目延期。性能测试“左移”&#xff08;Shift-Left&#xff09;是一种革命性策略&#xff0c;旨在将性能验证活动提前到开发周期的早…

作者头像 李华
网站建设 2026/4/18 0:44:33

全网干货!CTF 进阶指南:4 大题型核心技巧 + 避坑妙招

CTF 进阶指南&#xff1a;4 大题型核心技巧 避坑策略 本文聚焦 Web、Misc、Crypto、Pwn 四大主流题型&#xff0c;拆解进阶解题技巧&#xff0c;附实战案例和工具用法&#xff0c;帮你突破瓶颈、高效提分&#xff01; 一、Web 进阶&#xff1a;从工具脚本到原理突破 Web是 C…

作者头像 李华