读目录

简介: 读目录

Linux 系统中,对某个目录具有存取许可权的任一用户都可读该目录,但是只有内核才能写目录(防止文件系统发生混乱)。在文件属主中讲过,一个目录的写许可权和执行许可权确定了在该目录中能否创建新文件以及删除文件。


opendir() 函数和 readdir() 函数可以完成对目录的操作,实现对目录的读取。

#include <sys/types.h>
#include <dirent.h>
DIR *opendir(const char *name);点击复制复制失败已复制


读目录之前,首先应该选择打开一个目录。 opendir() 函数用于打开一个目录,参数 name 表示目录的名字,函数执行调用,返回一个指向 DIR 结构的指针,也可以把 DIR* 称为目录流指针,类似于打开文件的 FILE*DIR 的本质是一个结构体,在 <dirent.h> 中定义如下:

typedef struct __dirstream DIR;点击复制复制失败已复制


得到指向 DIR 结构体的指针之后,都可以使用 readdir() 函数对目录进行读取。

#include <dirent.h>
struct dirent *readdir(DIR *dirp);点击复制复制失败已复制


readdir() 函数实现对目录的读取,其参数的类型就是 DIR* 。由此可知,选择读取一个目录,首先应该得到一个与该目录有关联的结构体指针 DIR* 。函数返回一个结构体 dirent 指针。结构体 dirent 定义如下:

struct dirent {
  ino_t d_ino;  // inode number
  off_t doff;   // offset to the next dirent
  unsigned short d_reclen;  // length of this record
  unsigned short d_type;    // type of file; not supported by all file system types
  char d_name[256];         // filename
}点击复制复制失败已复制


其中, d_ino 表示文件的索引号d_off 表示在目录中文件的偏移d_reclen 表示文件名的长度d_type 表示文件的类型d_name 表示文件名。因此,可以通过 readdir() 函数返回的 dirnet 结构体指针访问 dirent 结构体成员,得到文件的信息。

目录
相关文章
|
7天前
|
人工智能 运维 安全
|
5天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
606 21
|
12天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
969 110
|
6天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。