Red de conocimiento informático - Espacio del host - Quiero escribir un programa C en Linux para llamar a un archivo o programa ejecutable de Linux. ¿Cómo hacerlo?

Quiero escribir un programa C en Linux para llamar a un archivo o programa ejecutable de Linux. ¿Cómo hacerlo?

En la programación de Linux C, es más fácil utilizar funciones del sistema para llamar a otro archivo ejecutable o comando. El principio de esta función es iniciar otro programa o comando en el programa que escribe, creando así un nuevo proceso, esperar a que este proceso se ejecute y luego salir. Si se ejecuta normalmente, la función del sistema devuelve el código de salida del programa o comando ejecutado; si el programa o comando no se puede ejecutar, se devuelve el código de error 127; si es otro error, se devuelve -1; El prototipo de esta función es:

# include & ltstdlib.h & gt

int system(const char * string);

La cadena de parámetros es ser ejecutado El nombre del archivo o la ruta del programa, o una cadena de comando si se ejecuta un comando.

Otra forma de ejecutar programas externos es la serie de funciones exec, que generalmente se llaman en el proceso hijo de fork. ¿Por qué no llamar a la serie ejecutiva directamente en el proceso principal? ¿Por qué fork lo llama en el subproceso? Debido a que la serie de funciones exec (incluida la función exec) reemplaza el proceso actual con un nuevo proceso, el proceso actual aquí es el programa que usted escribió, lo que significa que el proceso que llamó a la función exec ya no existirá después de que comience el nuevo proceso. Por lo tanto, el código después de la llamada a la función de la serie exec ya no se ejecutará. Si no se coloca en el proceso secundario de bifurcación, el proceso principal del programa que escribe ya no existirá después de ejecutar la función execl. Por lo tanto, el uso de funciones de la serie exec es bifurcarlo primero y luego llamarlo en el proceso secundario. Debido a que todas las funciones de la serie exec se llaman mediante fork, normalmente uso funciones del sistema.