que procesos proceso identificador huerfanos ejemplos arbol c++ c exec

c++ - identificador - procesos huerfanos



¿Para qué se utilizan las diferentes versiones de exec en C y C++? (3)

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?


Es la extensión de Posix de la biblioteca de tiempo de ejecución de C. Si la documentación oficial de Posix es insuficiente, entonces puedo recomendar un libro: Samuel P. Harbison, Guy L. Steele, 2002 "CA Reference" Página n. ° 416 - cubre esa pregunta.


Las diferencias son combinaciones de:

  1. L vs V : si desea pasar los parámetros al programa ejecutado como

    • L : parámetros individuales en la llamada (lista de argumentos variables): execl() , execle() , execlp() y execlpe()
    • V : como una matriz de char * execv() , execve() , execvp() y execvpe()

    El formato de matriz es útil cuando el número de parámetros que se envían al proceso ejecutado es variable, como no se conoce de antemano, por lo que no puede poner un número fijo de parámetros en una llamada a función.

  2. E : las versiones con una ''e'' al final le permiten pasar, además, una matriz de caracteres * que son un conjunto de cadenas añadidas al entorno de procesos generado antes de que se inicie el programa ejecutado. Otra forma de pasar parámetros, realmente.

  3. P : Las versiones con ''p'' allí usan la variable de ruta de entorno para buscar el archivo ejecutable llamado para ejecutar. Las versiones sin la ''p'' requieren que una ruta de archivo absoluta o relativa se anteponga al nombre del archivo ejecutable si no está en el directorio de trabajo actual.