Estas son todas las versiones de exec que se pueden usar en C (y C ++)
execl
execle
execlp
execv
execve
execvp
¿Cual es la diferencia entre ellos? ¿Cómo sabes cuál usar?
Estas son todas las versiones de exec que se pueden usar en C (y C ++)
execl
execle
execlp
execv
execve
execvp
¿Cual es la diferencia entre ellos? ¿Cómo sabes cuál usar?
Respuestas:
Las diferencias son combinaciones de:
L vs V : si desea pasar los parámetros al programa ejecutado como
execl()
, execle()
, execlp()
, yexeclpe()
execv()
, execve()
, execvp()
, yexecvpe()
El formato de matriz es útil cuando la cantidad de parámetros que se enviarán al proceso ejecutado es variable, como no se conoce de antemano, por lo que no puede ingresar una cantidad fija de parámetros en una llamada de función.
E : Las versiones con una 'e' al final le permiten, además, pasar una matriz de caracteres * que son un conjunto de cadenas agregadas al entorno de procesos generados antes de que se inicie el programa ejecutado. Otra forma más de pasar parámetros, en realidad.
P : Las versiones con 'p' allí usan la variable de entorno PATH
para buscar el archivo ejecutable nombrado para ejecutar. Las versiones sin la 'p' requieren que se anteponga una ruta de archivo absoluta o relativa al nombre de archivo del ejecutable si no está en el directorio de trabajo actual.
Opengroup es una de las mejores referencias generales para las funciones básicas de c / c ++.
Los documentos para exec * están aquí: http://pubs.opengroup.org/onlinepubs/009695399/functions/environ.html
Es la extensión Posix de la biblioteca en tiempo de ejecución C. Si la documentación oficial de Posix es insuficiente, puedo recomendar el libro - Samuel P. Harbison, Guy L.Steele, 2002 "CA Reference" Página # 416 - cubrir esa pregunta.