据我所知,目录在UNIX只是一个文件,其中包含inode编号和中的文件的名称。如何来看看吗?我不能使用cat以下的目录中,打开它,在vi只是表明我的文件列表...没有inode编号。

有帮助吗?

解决方案

由于这是一个编程问题(它的的编程问题,不是吗?),你应该看看opendirreaddirclosedir功能。这些是单一UNIX规格的一部分。

#include <sys/types.h>
#include <dirent.h>

DIR *opendir (const char *dirname);
struct dirent *readdir(DIR *dirp);
int closedir(DIR *dirp);

dirent.h文件应具有所需的结构,含有至少:

char   d_name[]    name of entry
ino_t  d_ino       file serial number

请参阅这里readdir手册页 - 它包含指向其他

请注意,信息有关存储在目录条目指定一个文件的数量是最小的。 i节点本身包含你从stat功能得到的东西,像时间,大小,所有者,权限等等,随着实际文件内容的所有重要指针。

其他提示

在过去的日子 - 7版本,系统III,早期的系统V - 你确实可以打开一个目录和内容读到内存,特别是对于具有2个字节的inode编号旧的Unix文件系统和14个字节的限制上的文件名。

作为更特殊的文件系统变得更加普遍时,执行opendir(),readdir的(),closedir()系列的函数调用有因为解析目录的内容变得越来越不平凡的,以替代使用。

最后,在过去十年左右的时间,它已经达到在大多数系统中,您无法读取目录的地步;你可以打开它(主要目的是让如fchdir(操作)可以工作),您可以使用电话的执行opendir()系列阅读。

scroll top