나는 내가 프로세스를 실행 execlp
를 사용때 execlp 여러 "프로그램"
cat file.tar | base64 | myprogram -c "| base64 -d | tar -zvt "
같은 것을 실행하려는.
cat
과 같은 것을 실행하려고하면 작동하지만 base64 -d | tar -zvt
을 실행하면 작동하지 않습니다.
나는 bash 명령을 보았고 나는 bash를 실행하고 다른 프로그램을 실행할 수 있다고 알았다. 내가 터미널에서 실행하면 잘 작동하지만 execlp
이 일을 해달라고 사용
execlp ("bash", "-c", "base64 -d | tar -zvt", NULL);
: 그래서 같은 것이 있습니다. execlp("cat", "cat", NULL)
을 사용하면 작동합니다.
누군가는 execlp에서 -c
param을 사용하여 여러 "프로그램"을 실행하는 방법을 알고 있습니까? 파이프와 포크를 사용하기 때문에 시스템을 사용할 수 없습니다.
execlp ("bash", "bash", "-c", "base64", NULL)를 사용하려고하면 ... 아무 일도 일어나지 않습니다. execlp ("cat", NULL)을 사용하면 괜찮습니다. stdin에 쓰고 있습니다 ... bash -c base64의 문제인지 잘 모릅니다. 터미널 에코 "asd"| 그것은 잘 진행 "고양이"-c bash는
[이전 답변] (http : // stackoverflow.질문/7281894/how-do-i-chain-stdout-in-one-child-process-st-in-another-child-in-c/7282296 # 7282296) 파이프와 프로세스. 희망이 도움이됩니다. –
내가 그것에 대해 생각, 조금 내가 배수구와 함께 해결하기 위해 노력하고있어, 내가 할 수 없다면 내가 여러 파이프 방법을 시도합니다 : (... 감사합니다. – Lefsler