redirecionando a saída para um arquivo em C

i codificou um shell básico em C para executar comandos básicos; ele executará comandosls, ls -al , ls -al | more etc.

Quero executar o seguinte comando no meu shell. gostar

ls -al > a.txt

isso vai me dara.txt arquivo que contém saída dels -al processo. Eu encontrei uma solução, está mudando o comando no meu shell como[command1] | tee [filename]. neste caso, ele mudaráls -al > a.txt parals -al | tee a.txt. mas esse processo fornece a saída para arquivo e terminal também. como parar a impressão no terminal.

ou existem soluções melhores em vez de usar o comando tee. desde já, obrigado..