問題タブ [piping]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2740 参照

unix - プロセス間通信としてのパイピング

独立したスレッドとして実行され、パイプと一緒にフックできる個別のプログラム モジュールを作成することに興味があります。動機は、各モジュールを完全に独立して作成およびテストできること、おそらくそれらを異なる言語で記述したり、異なるモジュールを異なるマシンで実行したりできることです。ここにはさまざまな可能性があります。私はしばらく配管を使用しましたが、その動作のニュアンスに慣れていません。

  • 受信側は入力を待ってブロックするようですが、送信側は誰かがストリームから読み取るのを待っていることがありますか?
  • ストリームに eof を書き込んだ場合、ストリームを閉じるまでそのストリームへの書き込みを続けることはできますか?
  • 名前付きパイプと名前なしパイプの動作に違いはありますか?
  • 名前付きパイプで最初に開いたパイプの端は重要ですか?
  • 異なる Linux システム間でパイプの動作は一貫していますか?
  • パイプの動作は、使用しているシェルまたは構成方法によって異なりますか?
  • この方法でパイプを使用したい場合、他に尋ねるべき質問や知っておくべき問題はありますか?
0 投票する
3 に答える
5976 参照

python - WindowsでのPython配管:なぜこれが機能しないのですか?

私はこのようなことを試みています

Output.py

Input.py

コマンド行で

ただし、EOFErrorを返します。誰かが私が間違っていることを教えてもらえますか?

ご協力いただきありがとうございます。

編集
パトリックハリントンソリューションは動作しますが、理由はわかりません...

0 投票する
4 に答える
14216 参照

c - C での popen() の使用に失敗しましたか?

次のコマンドを実行できます

xwd -root | xwdtopnm | pnmtojpeg > screen.jpg

Linux のターミナルで、現在の画面のスクリーンショットが生成されます。

私はコードで次のことをしようとしています:

次に、プログラムをコンパイルして実行します./popen > screen.jpgが、結果のファイル screen.jpg は認識できません。プログラムを正しくパイプ処理できるようにするにはどうすればよいですか?

0 投票する
3 に答える
88 参照

linux - プログラムからファイルへのデータの書き込み

私はLinuxを使用しています。addという名前のプログラムがあるとしましょう。プログラムは2つの数字を取ります。

だから私が入力すると

答えは3//明らかです

これをadd.dataという名前のファイルに書き出すコマンド

私は一種のLinuxn00bです。配管について読んでいました。ありがとう。

0 投票する
2 に答える
2503 参照

php - メールを PHP にパイプするときに添付ファイルを抽出する

私の cPanel ホスティングでは、メールの受信トレイをスクリプトにパイプできることはわかっていますが、やりたいことは次のとおりです。

  1. hi@hi.com に送信
  2. mail.php にパイプする
  3. mail.php は件名と .txt 添付ファイルを読み取ります
  4. 件名と .txt 添付ファイルの内容はデータベースに保存されます

簡単なPHPでこれを行う方法はありますか?

0 投票する
2 に答える
3084 参照

c - Cでの配管コマンドの問題

Unix用のCで単純なシェルを作成しようとしています。コマンドの解析と実行はすべて実行できましたが、配管に問題があります。問題は、2番目のコマンドの入力用に正しいパイプに接続していないことだと思います。

たとえば、「ls | wc」と入力すると、「wc」コマンドの後に一時停止します。これは、入力を待機しているためだと思います。問題は、dup2(reading [i]、0)を使用していて、正しいパイプに接続されていないことだと思います。

これは少し広い質問だと思いますが、もし私が得ることができる指針があれば、それをいただければ幸いです。これは、新しいプロセスを作成し、それらをパイプしようとするコードです。



更新:リチャードのおかげで、私はそれを理解することができました。これは、ファイル記述子を間違った順序で閉じることと、一部をまったく閉じないことの組み合わせでした。これが動作するコードです。

0 投票する
5 に答える
1829 参照

lisp - Lisp 連鎖関数マクロ

関数の連鎖 (パイピング) を可能にする既製の Lisp マクロはありますか? 見つかりませんでした。この例で私が何を意味するかを説明しようとします。

次のように多くの未使用の中間変数で let* を使用する代わりに:

以下のように書いていただきたいです。

ここで、明らかに_は前の式からの戻り値になります。プラスは、_1_2、...を使用して以前に返された値を参照できる場合です。

これはアイデアであり、正確な構文はそれほど重要ではありません。

これを書くのはそれほど難しいことではありませんが、とても便利なので、すでに書かなければなりません。

0 投票する
1 に答える
128 参照

unix - UNIXの疑いでの配管

K&PによるUnixプログラミング環境では、
「パイプライン内のプログラムは、実際には次々ではなく同時に実行されます。
これは、パイプライン内のプログラムが対話可能であることを意味します 。」と書かれています。

プログラムを同時に実行するにはどうすればよいですか?
例:$ who | grep mary | wc -l
誰が実行されるまでgrepmaryがどのように実行されるか、または以前のプログラムの結果がわかるまでwc -lがどのように実行されるか?

0 投票する
2 に答える
11735 参照

c - パイプの実装

パイピングをサポートする Linux シェルを実装しようとしています。私はすでに簡単なコマンド、バックグラウンドで実行されているコマンド、リダイレクトを実行しましたが、パイプがまだありません。

私はすでにそれについて読んで、コードのスニペットを見ましたが、まだ実用的な解決策を整理することができませんでした.

私がこれまでに持っているもの:

おそらくおわかりのように、私は初心者のプログラマーです。何かをプログラミングしているときは、あまりよく知りませんが、これは明らかにそうであり、非常に簡単で具体的なものから始めて、そこから構築するのが好きです。

したがって、パイプラインで 3 つ以上の異なるコマンドを実装できるようになる前に、「ls names.txt | sort」または類似のものを計算できるようにしたいと考えています。この場合、names.txt はアルファベット順に並べられていない名前のファイルです。

コードを更新しましたが、まだ機能しません。

ありがとう。

0 投票する
6 に答える
48115 参照

unix - Unixでechoとcatを組み合わせる

本当に簡単な質問です。シェルでechoとcatを組み合わせるにはどうすればよいですか。ファイルの内容を、文字列を付加して別のファイルに書き込もうとしていますか?

/ tmp / fileが次のようになっている場合:

これを実行したい:

/ tmp/resultは次のようになります。

ありがとう。