私はlinux(特にdebian)にディレクトリの内部表現を示す小さなプログラムを書こうとしています。このアイデアはopen( "。"、O_RDONLY)を使った小さなCプログラムでしたが、これは出力がないようです。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を返します。
なぜこれが機能しないのですか?内部表現を読み取るにはどうすればよいですか?
ありがとうございます!
私がいることを信じていますあなたのコード(またはそれと同等のもの)は、実装固有の方法で、(おそらく1980年代または1970年代に)長年前に働いていたかもしれません。 –