Я не могу заставить эту функцию работать, потому что по какой-то причине opendir не будет принимать buffer2 (объявленный как char buffer2 [128]) в качестве аргумента правильно. Если я заменил переменную чем-то вроде «.». или «образец», он отлично работает. Но делая это так, я получаю ошибку сегментации каждый раз. Пожалуйста помоги.opendir не будет принимать строковую переменную, но будет принимать простую строку
system("clear");
DIR *dirp;
struct dirent *dp;
printf("Enter directory name: ");
fgets(buffer2, 100, stdin);
if((dirp = opendir(buffer2)) == NULL)
printf("Could not open directory\n");
while((dp = readdir(dirp)) != NULL)
printf("%s\n", dp->d_name);
closedir(dirp);
printf("Hit enter to return to selection.");
getchar();
Try поставить время цикла и closedir в случае блока – Morb
строк читать с помощью 'fgets' сохранить символ новой строки в конце. Попробуйте удалить его с помощью 'strtok (buffer2," \ n ")' после прочтения. Вы также должны проверить возвращаемое значение 'fgets'. –
Вы пробовали 'strcpy (buffer2,". ")' Или подтвердить, что это факт, что вы используете буфер, который является проблемой, а не содержимым буфера? – John3136