execlp múltiples "programas"

Quiero ejecutar algo como

cat file.tar | base64 | myprogram -c "| base64 -d | tar -zvt "

Yo sueloexeclp para ejecutar el proceso.

Cuando intento ejecutar algo comocat funciona, pero si intento ejecutarbase64 -d | tar -zvt no funciona.

Vi los comandos de bash y descubrí que puedo ejecutar bash y decirle que ejecute otros programas. Entonces es algo como:

execlp ("bash", "-c", "base64 -d | tar -zvt", NULL);

Si lo ejecuto en la terminal, funciona bien, pero usando laexeclp no funciona. Si usoexeclp("cat", "cat", NULL) funciona

Alguien sabe cómo usar la-c param en execlp para ejecutar múltiples "programas"? No puedo usar el sistema porque uso tubería y horquilla.

Ahora me di cuenta, si trato de usar execlp ("bash", "bash", "-c", "base64", NULL) ... no pasa nada. Si uso execlp ("cat", NULL) está bien ... Estoy escribiendo en el stdin ... No sé si es el problema con el bash -c base64 ... porque si ejecuto el terminal echo "asd" | bash -c "gato" va bien

Respuestas a la pregunta(2)

Su respuesta a la pregunta