0

私はCでかなり単純なアプリケーションに取り組んでいます。最終的な目標は、あるプロセスからの出力を* nix環境で別のプロセスの入力にパイプすることです(はい、pipe()コマンドとdup/dup2は知っていますが、これらのコマンドを使用して回避しようとしています)。ファイル記述子を使用するのではなく、ストリームを接続する方法があるかどうか疑問に思っていました (システムが POSIX に準拠しているとは限りません)。

だから基本的に私はこのようなことをしたい(疑似コード)

pid = fork()

if pid == 0 
    // assign this process's stdin to the parents stdout.
    stdin = parent.stdout;
    exec() // launch new process that receives the parents stdout as stdin
    // child stuff....
else
    // parent stuff....

上記のように割り当てを行うだけではおそらく単純ではないことはわかっていますが、ストリームのみを使用してこれを行う方法はありますか? 辺りを見回してみましたが、何も見つかりませんでした..

ありがとう!

4

1 に答える 1

0

ここで要点が抜けていたら申し訳ありませんが、*nix の哲学全体は 1 つのプログラム、1 つの仕事です。プログラムの内容を画面にダンプするプログラムが必要な場合は、 cat コマンドがあります。ファイルが大きすぎて改ページが必要な場合は、 cat の出力を more コマンドにパイプします。

猫 myfile.txt | もっと

2 つのターミナル アプリケーション間でパイプする必要がある場合は、コマンド ラインを使用することをお勧めします。

myprog1 | myprog2

明らかにそれは哲学的なアプローチなので、それが役に立たない場合は、何をパイプしようとしているのか、なぜプロセス中にそれをやろうとしているのかを明確にすることができますか?

于 2012-04-18T00:41:50.807 に答える