Чтение директории как файл - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Работаю в среде Убунту 14.04. Попробовал прочитать директорию вот таким способом:
#include<stdio.h>
#include<locale.h>
 
int main(){
 
int i=0;    FILE *fp;
 
printf ("\n");
puts (setlocale(LC_ALL, ""));
printf ("\n");
 
if( (fp = fopen( "/", "rb")) != NULL ){
    
    while( !feof(fp) && i<1024){
                     putc(fgetc(fp), stdout);
                     i++;
                       }
    }
else puts("Ошибка открытия файла.");
 
fclose(fp);
printf ("\n\n");
return 0;
}
В результате получил в консоль следующий вывод: ru_RU.UTF-8 ������������������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������ ���������������������������������������������������������������� Исходя из этого хочу спросить: являеться ли такое чтение директории корректным вообще? и если - да, то как убрать кракозябры и вывести данные в более читаемом виде? Хочу добавить, что функция puts("привет") в другой программе в этой же системе работает абсолютно нормально, функцию putc() из цикла пробовал менять на printf() - результат тот-же. Способ чтение с rb на rt тоже менял.

Решение задачи: «Чтение директории как файл»

textual
Листинг программы
man opendir

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы