Я использую dirent.h в C++, чтобы получить доступные каталоги и файлы в моем каталоге, что он перечисляет в дополнение к доступным каталогам и файлам «.». и ".." Чтобы удалить их, я добавил инструкцию if перед печатью. код выглядит следующим образом:сравнение d_name с дампом ядра cstring
if ((dir = opendir (".")) != NULL) {
while ((ent = readdir (dir)) != NULL)
{
if(!strcmp(ent->d_name, ".")){
printf ("%s\n", ent->d_name);
}
closedir (dir);
}
}
else {
//could not open directory
printf("Error opening directory");
}
это не дает мне ошибку компиляции, но при выполнении он дает мне «двойной свободный или коррупции (сверху): 0x00000000016d3010 *** Прерванный (ядро сбрасывали)» Как я могу это исправить?