我正在尝试编写一个小程序来显示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(如预期),但对读取操作的调用返回-1。
为什么它不起作用,我该如何读取内部表示?
谢谢!