Программирование в стандарте POSIX



         

Пример 6.55


#include <dirent.h> #include <fnmatch.h> #include <errno.h> #include <stdio.h>

/* Программа сопоставляет имена файлов текущего каталога с заданными шаблонами */

#define SEARCH_DIR "."

static void match_names (DIR *dirp, const char *pattern) { struct dirent *dp;

rewinddir (dirp);

while (errno = 0, (dp = readdir (dirp)) != NULL) { if (fnmatch (pattern, dp->d_name, FNM_PERIOD) == 0) { (void) printf (" %s\n", dp->d_name); } }

if (errno != 0) { perror ("Ошибка при чтении каталога " SEARCH_DIR); } }

int main (int argc, char *argv []) { DIR *dirp; int i;

if ((dirp = opendir (SEARCH_DIR)) == NULL) { perror ("Ошибка при открытии каталога " SEARCH_DIR); return (-1); }

for (i = 1; i < argc; i++) { (void) printf ("Файлы каталога " SEARCH_DIR ", удовлетворяющие шаблону %s\n", argv [i]); match_names (dirp, argv [i]); }

return (closedir (dirp)); }

Листинг 6.55. Пример использования функций, обрабатывающих каталоги.

Закрыть окно






Содержание  Назад  Вперед