Como você escreve um programa C para executar outro programa?

No Linux, eu gostaria de escrever um programa em C que lança outro programa. Quando o programa for executado, o shell estará esperando que você insira um comando que você definiu no programa. Este comando iniciará o segundo programa.

Por exemplo, suponha que exista um programa C simples chamado "hello" no mesmo diretório do programa que está chamando. O programa "olá" imprime a saída "olá, mundo". O primeiro programa seria executado e o usuário digitaria o comando "olá". O programa "olá" seria executado e "olá, mundo". seria enviado para o shell.

Eu fiz algumas pesquisas e as pessoas sugeriram as funções "fork ()" e "exec ()". Outros disseram usar "system ()". Eu não tenho conhecimento sobre essas funções. Como eu chamo essas funções? Eles são apropriados para uso?

Exemplo de código com explicações seria muito útil. Outras respostas também são bem-vindas. Sua ajuda é muito apreciada

questionAnswers(5)

yourAnswerToTheQuestion