飞凌嵌入式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命令查看到的有序排列的顺序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1124565.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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

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

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

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

华为:共建鸿蒙世界,鸿蒙生态向前再迈一步!

鸿蒙 华为鸿蒙系统刚推出时&#xff0c;还有不少不同的声音&#xff0c;甚至有人嘲笑它是“安卓套壳”版。如今&#xff0c;已过去三年&#xff0c;鸿蒙OS一步一个脚印&#xff0c;一路劈荆斩刺&#xff0c;不仅突破了生死线&#xff0c;还迎来了新的成果。 11月4日&#xff0c…

降本增效新范式:Linux预测性维护在水务行业

想象一下&#xff0c;一座现代化大都市的地下&#xff0c;如同人体的血管网络&#xff0c;密布着成千上万台水泵。它们日夜不息&#xff0c;将清洁的水送往千家万户&#xff0c;又将生活污水安全排出。这些“心脏”一旦“罢工”&#xff0c;轻则导致片区水压不稳&#xff0c;重…

中专计算机专业毕业可从事的工作方向

2026年毕业的中专计算机专业学生&#xff0c;可选择的职业方向广泛&#xff0c;涵盖技术、运维、设计、数据分析等多个领域。以下是具体职业方向及对应的技能要求、薪资范围和证书建议&#xff08;包括CDA数据分析师证书&#xff09;。技术开发类岗位名称技能要求薪资范围&…

员工背景调查标准化操作蓝图

为确保招聘质量&#xff0c;企业需建立标准化的背景调查流程。本蓝图提供一套可复制的操作框架&#xff0c;以“江湖背调系统”为工具支撑&#xff0c;兼顾效率与合规。 第一阶段&#xff1a;调查前准备 明确调查范围与授权。在录用意向达成后&#xff0c;获取候选人签字的《背…

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

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

冷热电联供系统优化:用粒子群算法实现多目标优化

MATLAB代码&#xff1a;基于多目标粒子群算法冷热电联供综合能源系统运行优化 关键词&#xff1a;综合能源 冷热电三联供 粒子群算法 多目标优化 参考文档&#xff1a;《基于多目标算法的冷热电联供型综合能源系统运行优化》 仿真平台&#xff1a;MATLAB 平台 …

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

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

ARM嵌入式调试核心技巧:深入解析`__asm volatile(“bkpt 0“)`

ARM嵌入式调试核心技巧&#xff1a;深入解析__asm volatile("bkpt 0") 在嵌入式开发中&#xff0c;调试是解决问题的关键。本文将深入探讨ARM架构下的核心调试指令bkpt&#xff0c;并全面介绍嵌入式系统调试的高级技巧与实践方法。 一、bkpt指令&#xff1a;硬件断点…

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

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

网络安全零基础入门指南:从小白到安全达人的成长路径

网络安全零基础入门指南&#xff1a;从"小白"到"安全达人"的成长路径 网络安全零基础入门指南&#xff1a;从"小白"到"安全达人"的成长路径 网络安全不再是技术高手的专属领域&#xff0c;而是每个互联网用户都应具备的基本素养。本文…

基于企业微信 API 的外部群消息异步推送机制实现

一、 引言&#xff1a;为什么“异步”是外部群推送的核心&#xff1f; 平台限制的挑战&#xff1a; 简述企业微信对外部群消息推送的频率限制&#xff08;Rate Limit&#xff09;。同步请求的弊端&#xff1a; 解释在高并发业务场景下&#xff0c;同步调用 API 会导致的请求阻…

别让你的才华埋没在二流公司!向量数据库 Top 1 正在等你,这波风口别错过!

我们是全球领先的向量数据库企业&#xff0c;业务正在快速发展&#xff0c;现开放大量岗位&#xff1a; 数据库开发工程师、数据库运维、运营、销售…… 为你金光闪闪履历锦上添花&#xff1b;如果你是还在成长中的新锐&#xff0c;那么这里将是你加速的孵化器**。 但如果你还…

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

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

基于java的城市公交在线查询系统

3系统分析 所谓系统分析&#xff0c;就是将自己对某一系统的构思以书面形式体现出来&#xff0c;并以此为基础&#xff0c;进行后续的软件设计和开发。在软件开发初期&#xff0c;人们对系统分析还不够重视&#xff0c;导致最终系统验收时&#xff0c;需要进行较大修改&#xf…

上下文直接暴增 16 倍!Meta 惊人操作揭秘:这才是 RAG Context Engineering 的天花板!

最近一段时间&#xff0c;Context Engineering&#xff08;上下文工程&#xff09;的热度已无需多言&#xff0c;而 Meta 超级智能实验室发布的首篇论文&#xff0c;便聚焦于该领域的核心议题——模型上下文智能压缩&#xff0c;展开了深度研究。 相信在开发 RAG与 Agent时&am…

《创业之路》-813-如何发现和定义价值?ToB和ToC的价值有哪些区别?ToB和ToC有哪些亘古不变的常见的价值需求?

“如何发现和定义价值&#xff1f;” “ToB 与 ToC 的价值有何区别&#xff1f;” “哪些是亘古不变的核心价值需求&#xff1f;”这三问层层递进&#xff0c;构成了企业构建产品、制定战略、实现增长的底层认知框架。我们一一拆解。一、如何发现和定义价值&#xff1f;✅ 核心…

大模型落地第一步就错?LLM、RAG、Workflow、Agent 怎么选?这篇救你的命!

搞大模型落地&#xff0c;谁还没几个崩溃时刻了&#xff1f;这份保命指南请收好&#xff1a; 效果要显贵&#xff0c;基础款就不要再搭基础款 模型基础&#xff0c;数据就不基础&#xff1b; 架构基础&#xff0c;infra就不基础&#xff1b; 场景基础&#xff0c;方案就不基…

深度测评自考必备!9款AI论文软件TOP9全对比

深度测评自考必备&#xff01;9款AI论文软件TOP9全对比 2026年自考论文写作工具测评&#xff1a;为何需要一份权威榜单&#xff1f; 随着人工智能技术的不断进步&#xff0c;越来越多的自考生开始借助AI论文软件提升写作效率。然而&#xff0c;市面上的工具种类繁多&#xff0c…