Поиск файла в каталоге. Язык С, Linux - C (СИ)
Формулировка задачи:
Здравствуйте! Подскажите, пожалуйста, как написать простенькую программку на С, которая будет искать файл в каталоге, а результат поиска(имя, путь, размер, дату, права доступа и тому подобное) выводить на консоль.
Имя файла и директорию я должен задать как аргументы командной строки, в таком виде:
if(argc == 1)
printf("To less of arguments\n");
else
printf("search in dir : %s\n",argv[1]);Решение задачи: «Поиск файла в каталоге. Язык С, Linux»
textual
Листинг программы
DIR *dir; struct dirent *ent; if ((dir = opendir(a_path)) != NULL) while ((ent = readdir(dir)) != NULL) if (!strcmp(ent->d_name, a_fileName))
Объяснение кода листинга программы
- Объявлены две переменные:
dirиent. - Открывается директория с помощью функции
opendir. - В цикле
whileс помощью функцииreaddirсчитывается каждый элемент директории. - С помощью функции
strcmpсравнивается имя файла из директории со значением переменнойa_fileName. - Если имена совпадают, то выполняется нужное действие (которое в коде не указано).