Linux программирование в примерах
Linux программирование в примерах читать книгу онлайн
В книге рассмотрены вопросы, связанные с программированием под Linux: файловый ввод/вывод, метаданные файлов, основы управления памятью, процессы и сигналы, пользователи и группы, вопросы интернационализации и локализации, сортировка, поиск и многие другие. Много внимания уделено средствам отладки, доступным под GNU Linux. Все темы иллюстрируются примерами кода, взятого из V7 UNIX и GNU. Эта книга может быть полезна любому, кто интересуется программированием под Linux.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
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
