Итак, у меня есть проект, в котором мне нужно создать небольшую простую текстовую оболочку, которая может запускать, редактировать и читать файлы из каталога. У меня есть небольшой прототип, который должен работать, за исключением того, что при компиляции я получаю сообщение об ошибке о том, что d_type не найден в структуре dirent, используемой в заголовочном файле dirent.h.
d = opendir( "." );
c = 0;
while ((de = readdir(d))){
if ((de->de_type) & DT_DIR)
printf( " ( %d Directory: %s ) \n", c++, de->de_name);
}
переменная "de" имеет тип struct dirent* и проверяется на ее тип, и я получаю сообщение об ошибке: "struct dirent" не имеет члена с именем "de_type"
Вот где я действительно озадачен и сбит с толку: я скомпилировал этот код как в Windows (используя dev C++), так и в Ubuntu (используя gcc). Я получил одну и ту же ошибку в обеих ОС, и когда я проверил используемую библиотеку, которая, как я полагаю, является обычной библиотекой gnu C, там есть переменная с именем d_type:
https://www.gnu.org/software/libc/manual/html_node/Directory-Entries.html
Я нашел другие ссылки на файл dirent.h, которого нет, потому что он находится в другой библиотеке, и если это так, как мне загрузить эту библиотеку, чтобы я мог скомпилировать код?
Извините за длинный пост и большое спасибо всем, кто ответит!
d_type
, а везде у васde_type
. - person user3386109   schedule 05.02.2016