問題タブ [dup2]
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.
exec - パイプのマルチチェーン
私は必死です。パイプのマルチチェーンのリファレンス/ソースコードを1か月間探しています。つまり、何かを実行できるということです。
teeがファイルを処理している間はbash/tee /$...コマンドに送らないでください。bashは複雑すぎて理解できません...
注文は関係ありません。最初に終了したチェーンも処理されます。
c - Cのマルチパイプ
私はCで複数のパイプを実装しようとしていますが、解決策は次の両方である必要があります。
および:
正しい結果を確認した後と、別の結果を確認した場合、プログラムの出力は決定論的ではありません。dup2が複数回実行され、結果のファイル記述子から読み取られたファイル記述子ごとに、dup2が期待どおりに機能しないように見えます-コピーされたファイル記述子に影響を与えているように見えますか?
私が設計で述べたように機能する場合、両方に使用する必要があるシステムコールはどれですか?
c - Cハングのマルチパイプ
複数のシェル コマンド チェーンを実行するプログラムを実装しようとしています。
等々...
サブプロセスでstraceを実行すると、パイプからの読み取りでスタックし、メインプロセスでスタースを実行すると、読み取りでもスタックします...パイプバッファーは64Kで、パイプごとに一度に4kしか書き込んでいません
どうしたの?!
ありがとう!!!
c++ - C++dup2でファイルに書き込む
了解しました。あるファイルから読み取り、別のファイルに書き込もうとしています。
最初のファイルから情報を取得するなど、他に追加するものがありますが、テストのために、2番目のファイルに書き込もうとしています。
私の理解では、dp2()呼び出しの後のすべてが2番目のパラメーターに出力されます。右?
c - 誰かが C の dup() の機能を説明できますか?
私は、dup、dup2、dup3 が「ファイル記述子 oldfd のコピーを作成する」ことを知っています(man ページから)。でも消化できない。
私が知っているように、ファイル記述子はファイルの場所とその方向(入力/出力)を追跡するための単なる数字です。する方が簡単ではないでしょうか
ファイル記述子を複製したいときはいつですか?
そして何か他のもの..
dup() は、番号が最も小さい未使用の記述子を新しい記述子に使用します。
それは、 stdin、stdout、またはstderrのいずれかをclose()したと仮定すると、値としても取ることができるということですか?
c++ - C++ dup2 と execl
私は割り当てに取り組んでおり、他のプログラムがさまざまな機能を処理できるようにパイプを作成する必要があります。コマンドラインから問題なくパイプできます。簡単です。ただし、dup2 と execl を使用するのは、私にとってトリッキーでした。ある時点で、プログラムの一部から出力を取得できましたが、別の部分からは何も読み取れませんでした。
ここに私が持っているものがあります:
パイプライン.cpp
part1.cpp
part2.cpp
わかりましたので、pipeline.cpp : 2 回フォークし、2 つの子の間にパイプを作成します。次に、それぞれが Excel を使用して、そのプロセスをプログラム part1 と part2 に置き換えます。私の理解では、part1 プログラムが実行され、それが出力するものはすべて、part2 を実行する 2 番目の子によって取得され、そこから、出力記述子が変更されていないため、パート 2 が正常に出力されるということです。ここで何かを見逃したり、誤用したりしていますか?
c - dup2 不正なファイル記述子エラー
このウェブサイトから入手したチュートリアルを使用して、複数のパイプを実装しようとしています。複数のパイプを処理する関数を実行した後、不適切なファイル記述子エラーが発生するようです。初めて複製すると、このエラーが表示されます。コードは次のとおりです。
どこかに漏れがあるか、記述子が見つからない可能性があります。どこに問題があるのか わからないようです。私は何を間違えましたか?ありがとう。
編集されたコード:
c - dup2 はファイル記述子をコピーするだけではありませんか?
まず、ファイルを開き、dup2
ファイル記述子をコピーします。最初のファイル ディスクリプタが閉じられている場合でも、別のファイル ディスクリプタからファイルを読み取ることができるのはなぜですか?
python - C 呼び出し用に Python から stdout をリダイレクトする
これは、特にその答えに関するhereからのフォローアップの質問です。
Python モジュールから、単に標準出力に出力するHello WorldHello World
実行可能ファイルを呼び出しています。その出力をPythonにリダイレクトすることに興味があり、このStringIO
回答に出くわしました。これにより、ほとんど解決策にたどり着きました。
この回答の重要な部分は、次のコード セグメントです。
また、リダイレクト前の標準出力を復元したいと思います。
質問
- 上記の関数で正確に何が起こっているのでしょうか?
dup
とは何dup2
ですか?- とは
/dev/null
? - 8 行目は何をしているのですか? (
sys.stdout = os.fdopen(newstdout, 'w')
)
StringIO
stdout をオブジェクトに保存するにはどうすればよいですか?- Hello Worldプログラムを呼び出した後、stdout を復元するにはどうすればよいですか?
質問 1 の答えがわかれば、質問 2 と 3 の答えも簡単になると確信しています。とにかく投稿して、質問1の答えを自分の行きたい方向に押し進めることにしました。
c - プロセス間のパイプ チェーン
私は 2 人の子供を持つ 1 つの親を持ちたいです。
親はファイル「a.txt」から読み取り、トラフ パイプを最初の子に送信します。最初の子が文字を読み取り、2 番目の子に小文字の文字を送信します。
2番目の子は、「b.txt」にそれぞれの個別の文字と出現数(行ごと)を出力し、パイプを介して親に個別の文字の数を送信します。親は、2 番目の子からの結果を出力します。
親から 1 つの子へのパイプを実行し、テストするためにパイプを親に戻しました。私が理解できないのは、パイプを2番目の子に送る方法です。情報を探していますdup2
が、それを機能させる方法がわかりません。