Я пытаюсь написать небольшую программу, чтобы показать мне внутреннее представление каталога в linux (в частности, debian). Идея была в небольшой C-программе, использующей open (".", O_RDONLY), но это, похоже, не дает результата. Программа следующая:
#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.
Почему это не работает, и как я могу добиться, чтобы прочитать внутреннее представление?
Спасибо!