Grabbing saída de exec

so estou tentando escrever algo que precisa pegar a saída do comando e depois tratá-la e passá-la para outro program

mas estou tendo um problema, não consigo descobrir como obter o comando de saída e armazená-lo abaixo é uma amostra do que tenho

if(fork() == 0){
   execl("/bin/ls", "ls", "-1", (char *)0);
   /* hopefully do something with the output here*/
}else{
  *other stuff goes here*
 }`

Então, basicamente, estou me perguntando se existe alguma maneira de obter a saída do "execl" e passá-la para outra coisa (por exemplo, através do armazenamento em algum tipo de buffer

qualquer sugestão seria ótimo. obrigado pessoal ..