ВУЗ:
Составители:
17
Функция исполняет файл, заданный строкой FILENAME как новое
изображение процесса. Аргумент ARGV представляет собой массив строк,
заканчивающихся нулем, которые используются как аргумент argv функции main.
Последним элементом этого массива должен быть нулевой указатель. Первый элемент
массива – имя файла программы. Среда нового изображения процесса берется из
переменной environ текущего изображения процесса.
int execl (const char *FILENAME, const char *ARG0, ...)
Идентична execv, однако все аргументы программы передаются в функцию
индивидуально вместо задания массива.
int execve (const char *FILENAME, char *const ARGV[], char *const
ENV[])
Идентична execv за исключением того, что процессу передаются переменные
среды в аргументе ENV.
int execle (const char *FILENAME, const char *ARG0, char *const
ENV[], ...)
Идентична предыдущей функции за исключением того, что аргументы
программы передаются индивидуально.
int execvp (const char *FILENAME, char *const ARGV[])
Идентична execv за исключением, что пытается найти команду с таким именем
в каталогах, указанных в переменной среды PATH, если FILENAME не содержит ни
одного символа слэша.
int execlp (const char *FILENAME, const char *ARG0, ...)
Идентична execl за исключением того, что выполняет поиск команды
аналогичный предыдущей функции.
Размер аргументов и переменных среды не должен превышать ARG_MAX
байтов. В Linux размер строки вычисляется как длина строки + размер типа данных char
* +1.
Функция не возвращают управление в родительскую программу до тех пор,
пока не дочерний процесс не прекратит выполнение. В случае ошибки функция
возвращает значение –1. Переменная errno может принимать одно из следующих
значений:
E2BIG Совместная длина аргументов программы и переменных среды
превышает E2BIG байтов;
ENOEXEC Указанный файл не может быть исполнен, так как имеет неверный
формат;
ENOMEM Исполнение программы требует больший размер оперативной памяти,
чем доступно.
Выполнение нового изображения процесса полностью меняет содержимое
оперативной памяти, однако многие атрибуты процесса остаются неизменными:
• Идентификатор процесса и идентификатор родительского процесса;
• Сессия и членство в группе процессов;
• Идентификатор пользователя и идентификатор группы;
• Текущий рабочий каталог и корневой каталог;
• Маска режима создания файла;
• Маска сигналов процесса;
• Время выполнения процесса.
Файловые дескрипторы открытых файлов остаются открытыми, если для
дескриптора не задан флаг FD_CLOEXEC.
Функция исполняет файл, заданный строкой FILENAME как новое
изображение процесса. Аргумент ARGV представляет собой массив строк,
заканчивающихся нулем, которые используются как аргумент argv функции main.
Последним элементом этого массива должен быть нулевой указатель. Первый элемент
массива – имя файла программы. Среда нового изображения процесса берется из
переменной environ текущего изображения процесса.
int execl (const char *FILENAME, const char *ARG0, ...)
Идентична execv, однако все аргументы программы передаются в функцию
индивидуально вместо задания массива.
int execve (const char *FILENAME, char *const ARGV[], char *const
ENV[])
Идентична execv за исключением того, что процессу передаются переменные
среды в аргументе ENV.
int execle (const char *FILENAME, const char *ARG0, char *const
ENV[], ...)
Идентична предыдущей функции за исключением того, что аргументы
программы передаются индивидуально.
int execvp (const char *FILENAME, char *const ARGV[])
Идентична execv за исключением, что пытается найти команду с таким именем
в каталогах, указанных в переменной среды PATH, если FILENAME не содержит ни
одного символа слэша.
int execlp (const char *FILENAME, const char *ARG0, ...)
Идентична execl за исключением того, что выполняет поиск команды
аналогичный предыдущей функции.
Размер аргументов и переменных среды не должен превышать ARG_MAX
байтов. В Linux размер строки вычисляется как длина строки + размер типа данных char
* +1.
Функция не возвращают управление в родительскую программу до тех пор,
пока не дочерний процесс не прекратит выполнение. В случае ошибки функция
возвращает значение –1. Переменная errno может принимать одно из следующих
значений:
E2BIG Совместная длина аргументов программы и переменных среды
превышает E2BIG байтов;
ENOEXEC Указанный файл не может быть исполнен, так как имеет неверный
формат;
ENOMEM Исполнение программы требует больший размер оперативной памяти,
чем доступно.
Выполнение нового изображения процесса полностью меняет содержимое
оперативной памяти, однако многие атрибуты процесса остаются неизменными:
• Идентификатор процесса и идентификатор родительского процесса;
• Сессия и членство в группе процессов;
• Идентификатор пользователя и идентификатор группы;
• Текущий рабочий каталог и корневой каталог;
• Маска режима создания файла;
• Маска сигналов процесса;
• Время выполнения процесса.
Файловые дескрипторы открытых файлов остаются открытыми, если для
дескриптора не задан флаг FD_CLOEXEC.
17
Страницы
- « первая
- ‹ предыдущая
- …
- 15
- 16
- 17
- 18
- 19
- …
- следующая ›
- последняя »
