Linux программирование в примерах
Linux программирование в примерах читать книгу онлайн
В книге рассмотрены вопросы, связанные с программированием под Linux: файловый ввод/вывод, метаданные файлов, основы управления памятью, процессы и сигналы, пользователи и группы, вопросы интернационализации и локализации, сортировка, поиск и многие другие. Много внимания уделено средствам отладки, доступным под GNU Linux. Все темы иллюстрируются примерами кода, взятого из V7 UNIX и GNU. Эта книга может быть полезна любому, кто интересуется программированием под Linux.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
9.1.4.2. Функции-оболочки:
execl()Пять дополнительных функций, действующих в качестве оболочек, предоставляют более удобные интерфейсы для
execve()int execl(const char *path, const char *arg, ...)Первый аргумент,
pathargargvargv[0]NULLexecl()environint execlp(const char *file, const char *arg, ...)Эта функция подобна
execl()filePATHfile/PATHexeclp():/bin:/usr/binPATHБолее того, если файл найден и имеет право доступа на исполнение, но не может быть исполнен из-за того, что неизвестен его формат,
execlp()int execle(const char *path, const char *arg, ..., char *const envp[])Эта функция также подобна
execl()envpexecl()envpNULLВторая группа функций-оболочек принимает массив в стиле
argvint execv(const char *path, char *const argv[])Эта функция подобна
execve()int execvp(const char *file, char *const argv[])Эта функция подобна
execv()PATHexeclp()В табл. 9.1 подведены итоги для шести функций
exec()Таблица 9.1. Сводка семейства функций
exec()| Функция | Поиск пути | Окружение пользователя | Назначение |
|---|---|---|---|
execl() | √ | Исполняет список аргументов. | |
execle() | Исполняет список аргументов с окружением. | ||
execlp() | √ | √ | Исполняет список аргументов с поиском пути |
execv() | √ | Исполняет с argv | |
execve() | Исполняет с argv | ||
execvp() | √ | √ | Исполняет с argv |
Функций
execlp()execvp()PATH9.1.4.3. Имена программ и
argv[0]До сих пор мы все время считали
argv[0]/Однако, как должно быть ясно к этому времени, то, что
argv[0]argv[0]ch09-run.c1 /* ch09-run.c --- запуск программы с другим именем и любыми аргументами */23 #include <stdio.h>4 #include <errno.h>5 #include <unistd.h>67 /* main --- настроить argv и запустить указанную программу */89 int main(int argc, char **argv)10 {11 char *path;
