¿Cómo se escribe un programa en C para ejecutar otro programa?

En Linux, me gustaría escribir un programa en C que inicie otro programa. Cuando se ejecute el programa, el shell estará esperando que ingrese un comando que haya definido en su programa. Este comando iniciará el segundo programa.

Por ejemplo, suponga que hay un programa simple 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á y el usuario ingresará el comando "hola". Se ejecutará el programa "hola" y "hola, mundo". se enviaría al shell.

He realizado algunas búsquedas, y la gente sugirió las funciones "fork ()" y "exec ()". Otros dijeron que usaban "system ()". 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

Respuestas a la pregunta(5)

Su respuesta a la pregunta