Флаг Значение
GLOB_APPENDДобавить результаты текущего вызова к предыдущим
GLOB_DOOFFSЗарезервировать места gl_offs спереди в gl_pathv
GLOB_MARKДобавлять символ / в конец каждого имени, которое обозначает каталог
GLOB_NOCHECKЕсли шаблон не соответствует имени какого-нибудь файла, вернуть его без изменений
GLOB_NOESCAPEРассматривать обратный слеш как обычный символ. Это делает невозможным обозначать метасимволы подстановок
GLOB_NOSORTНе сортировать результаты, по умолчанию они сортируются

GLIBC версия структуры glob_t содержит дополнительные члены:

typedef struct { /* GLIBC */

 /* Компоненты POSIX: */

 size_t gl_pathc; /* Число подходящих путей */

 char **gl_pathv; /* Список подходящих путей */

 size_t gl_offs; /* Резервируемые в gl_pathv слоты */

 /* Компоненты GLIBC: */

 int gl_flags; /* Копия флагов, дополнительные флаги GLIBC */

 void (*gl_closedir)(DIR *); /* Частная версия closedir() */

 struct dirent *(*gl_readdir)(DIR *); /* Частная версия readdir)) */

 DIR *(*gl_opendir)(const char *); /* Частная версия opendir)) */

 int (*gl_lstat)(const char *, struct stat *);

  /* Частная версия lstat() */

 int (*gl_stat)(const char *, struct stat *); /* Частная версия stat() */

} glob_t;

Члены структуры следующие:

int gl_flags

Копия флагов. Включает также GLOB_MAGCHAR, если pattern включал какие-либо метасимволы.

void (*gl_closedir)(DIR *)

Указатель на альтернативную версию closedir().

struct dirent *(*gl_readdir)(DIR *)

Указатель на альтернативную версию readdir().

DIR *(*gl_opendir)(const char *)

Указатель на альтернативную версию opendir().

int (*gl_lstat)(const char *, struct stat*)

Указатель на альтернативную версию lstat().

int (*gl_stat)(const char*, struct stat*)

Указатель на альтернативную версию stat().

Указатели на альтернативные версии стандартных функций предназначены главным образом для использования в реализации GLIBC; крайне маловероятно, что вы когда-нибудь их используете. Поскольку GLIBC предусматривает поле gl_flags и дополнительные значения флагов, справочная страница и руководство Info документируют оставшуюся часть структуры GLIBC glob_t. В табл. 12.3 перечислены дополнительные флаги.

Таблица 12.3. Дополнительные флаги GLIBC для glob()

ФлагЗначение
GLOB_ALTDIRFUNCИспользовать для доступа к каталогам альтернативные функции (см. текст)
GLOB_BRACEВыполнить раскрытие фигурных скобок в стиле csh и Bash.
GLOB_MAGCHARВставить gl_flags, если были найдены метасимволы.
GLOB_NOMAGICВернуть шаблон, если он не содержит метасимволов
GLOB_ONLYDIRПо возможности сопоставлять лишь каталоги. См. текст.
GLOB_PERIODРазрешить соответствие метасимволов наподобие * и ? начальной точке
GLOB_TILDEВыполнить раскрывание тильды в стиле оболочки.
GLOB_TILDE_CHECKПодобно GLOB_TILDE, но если есть проблемы с указанным домашним каталогом, вернуть GLOB_NOMATCH вместо помещения pattern в список.
Перейти на страницу:

Похожие книги