Читать книгу 📗 "Linux программирование в примерах - Роббинс Арнольд"
char **gl_pathvМассив подходящих путей.
gl_pathv[gl_pathc]NULLsize_t gl_offs«Зарезервированные слоты» в
gl_pathvgl_pathvexecv()execvp()exec()NULLflagsGLOB_DOOFFSВ табл. 12.2 перечислены стандартные флаги для
glob()Таблица 12.2. Флаги для
glob()| Флаг | Значение |
|---|---|
GLOB_APPEND | Добавить результаты текущего вызова к предыдущим |
GLOB_DOOFFS | Зарезервировать места gl_offsgl_pathv |
GLOB_MARK | Добавлять символ / в конец каждого имени, которое обозначает каталог |
GLOB_NOCHECK | Если шаблон не соответствует имени какого-нибудь файла, вернуть его без изменений |
GLOB_NOESCAPE | Рассматривать обратный слеш как обычный символ. Это делает невозможным обозначать метасимволы подстановок |
GLOB_NOSORT | Не сортировать результаты, по умолчанию они сортируются |
GLIBC версия структуры
glob_ttypedef 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_MAGCHARpatternvoid (*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_flagsglob_tТаблица 12.3. Дополнительные флаги GLIBC для
glob()| Флаг | Значение |
|---|---|
GLOB_ALTDIRFUNC | Использовать для доступа к каталогам альтернативные функции (см. текст) |
GLOB_BRACE | Выполнить раскрытие фигурных скобок в стиле csh |
GLOB_MAGCHAR | Вставить gl_flags |
GLOB_NOMAGIC | Вернуть шаблон, если он не содержит метасимволов |
GLOB_ONLYDIR | По возможности сопоставлять лишь каталоги. См. текст. |
GLOB_PERIOD | Разрешить соответствие метасимволов наподобие *? |
GLOB_TILDE | Выполнить раскрывание тильды в стиле оболочки. |
GLOB_TILDE_CHECK | Подобно GLOB_TILDEGLOB_NOMATCHpattern |
Флаг
GLOB_ONLYDIR