obter a saída do comando no pipe, C para Linux

Preciso executar um comando da CLI do Linux e obter sua saída stdout de C.

Eu posso usar pipe () para criar um pipe, depois bifurcar / exec, redirecionando o descritor stdout da criança para o pipe antes de chamar exec () e lendo o pipe no pai. Além disso, vou precisar esperar a criança.

Existe uma chamada simples para fazer fork + redirecionar + exec + esperar, como system () faz fork + exec + wait, apenas system () não faz o redirecionamento.

Há popen (), que faz fork + redirecionar + exec, mas não espera, então não consigo obter o status de saída.

questionAnswers(4)

yourAnswerToTheQuestion