En Linux, me gustaría escribir un programa C que inicia otro programa. Cuando se ejecuta el programa, el intérprete de comandos estará esperando que ingrese un comando que haya definido en su programa. Este comando lanzará el segundo programa.¿Cómo se escribe un programa en C para ejecutar otro programa?
Por ejemplo, supongamos que hay un simple programa de C llamado "hola" en el mismo directorio que el programa de invocación. El programa "hola" imprime la salida "hola, mundo". El primer programa se ejecutaría y el usuario ingresaría el comando "hola". El programa "hola" se ejecutará y "hola, mundo". se enviaría a la shell.
He hecho algunas búsquedas, y la gente sugirió las funciones "fork()" y "exec()". Otros dijeron usar "sistema()". No tengo conocimiento sobre estas funciones. ¿Cómo llamo a estas funciones? ¿Son apropiados para usar?
El código de ejemplo con explicaciones sería de gran ayuda. Otras respuestas también son bienvenidas. Tu ayuda es muy apreciada.
+1 para una solución más flexible –
¿Por qué 'echo' en la variable' argv' y en la llamada 'execv'? – User
@User, porque es argv [0], es decir, * nombre del programa *. – 0andriy