gpt4 book ai didi

c - 在C中读取目录文件

转载 作者:IT王子 更新时间:2023-10-29 00:58:39 28 4
gpt4 key购买 nike

我正在尝试编写一个小程序来向我展示 linux(特别是 debian)中目录的内部表示。这个想法是一个使用 open(".", O_RDONLY) 的小型 C 程序,但这似乎没有输出。程序如下:

#include <stdio.h>
#include <fcntl.h>

int main(int argc, char** argv)
{
int fd = open(argv[1],O_RDONLY,0 );
char buf;

printf("%i\n",fd);

while(read(fd, &buf, 1) > 0)

printf("%x ", buf);


putchar('\n');
}

当我在常规文件上运行它时,它按预期工作,但在诸如“.”之类的目录上,它没有输出。 fd 的值为 3(正如预期的那样),但对 read 的调用返回 -1。

为什么这行不通,我怎样才能读取内部表示?

谢谢!

最佳答案

要处理目录,您需要使用opendir/readdir/closedir。阅读相应的手册页以获取更多信息。

要检查文件名是否对应于目录,首先需要调用stat 文件名并检查它是否是目录(S_ISDIR(myStatStruc.st_mode)) .

关于c - 在C中读取目录文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9537352/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com