Ответ 1
Различия - это комбинации:
-
L vs V: хотите ли вы передать параметры в программу exec'ed как
- L: отдельные параметры в вызове (список переменных аргументов):
execl()
,execle()
,execlp()
иexeclpe()
- V: как массив char *
execv()
,execve()
,execvp()
иexecvpe()
Формат массива полезен, когда количество параметров, которые должны быть отправлены процессу exec'а, являются переменными - как в заранее неизвестном, поэтому вы не можете установить фиксированное количество параметров в функции звоните.
- L: отдельные параметры в вызове (список переменных аргументов):
-
E. Версии с "e" в конце позволяют вам дополнительно передать массив char *, который представляет собой набор строк, добавленных в среду обработанных процессов, до запускается программа. Еще один способ передачи параметров.
-
P: в версиях с 'p' используется переменная пути среды для поиска исполняемого файла с именем execute. Для версий без "p" требуется абсолютный или относительный путь к файлу, который должен быть добавлен к имени файла исполняемого файла, если он не находится в текущем рабочем каталоге.