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



         

Пример 6.55


#include

#include

#include

#include

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

#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));

}




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