Это все версии exec, которые можно использовать в C (и C ++)
execl execle execlp execv execve execvp
В чем разница между ними?Как вы знаете, какой использовать?
Различия представляют собой комбинации:
L против V : хотите ли вы передать параметры в исполняемую программу как
execl()
execle()
execlp()
execlpe()
execv()
execve()
execvp()
execvpe()
Формат массива полезен, когда число параметров, которые должны быть отправленыПроцесс exec'ed является переменным - как в заранее неизвестном, поэтому вы не можете ввести фиксированное количество параметров в вызове функции.
E : версии с буквой 'e' в конце позволяют дополнительно передавать массив char *, представляющий собой набор строк, добавленных в среду порожденных процессов перед запуском исполняемой программы.Еще один способ передачи параметров, на самом деле.
P : версии с 'p' используют переменную пути к среде для поиска исполняемого файла с именемвыполнить.Версии без 'p' требуют, чтобы к имени файла исполняемого файла был добавлен абсолютный или относительный путь к файлу, если он не находится в текущем рабочем каталоге.
Opengroup - одна из лучших общих ссылок для основных функций c / c ++.
Документы для exec * здесь: http://pubs.opengroup.org/onlinepubs/009695399/functions/environ.html
Это расширение Posix библиотеки времени исполнения C. Если официальной документации Posix недостаточно, я могу порекомендовать книгу - Сэмюэль П. Харбисон, Гай Л. Стил, 2002 г. «C A Reference», страница № 416 - охватить этот вопрос.