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