は、私は、プロセスを実行するためにexeclp
を使用のexeclpの複数の「プログラム」
cat file.tar | base64 | myprogram -c "| base64 -d | tar -zvt "
ような何かを実行したいです。
私はcat
のようなものを実行しようとすると動作しますが、私がbase64 -d | tar -zvt
を実行しようとすると動作しません。
私はbashコマンドを見て、私はbashを実行して他のプログラムを実行するように指示することができたことを知りました。だから、のようなものです:
execlp ("bash", "-c", "base64 -d | tar -zvt", NULL);
私は、端末上でそれを実行した場合、それはうまく動作しますが、execlp
を使用すると、それはいけない仕事。 私が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-to-other-child-in-c/7282296#7282296)パイプで処理する。希望が役立ちます。 –
私はそれについて考えました、ビット私はbashでそれを解決しようとしています、私はそれを行うことはできません複数のパイプ方法を試してみましょう:(...ありがとう – Lefsler