問題タブ [pipe]
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.
c - パイプにポインターを配置するにはどうすればよいですか?
スレッド内の構造へのポインタがあり、それをパイプ経由で親プロセスに渡したいとします。
例:
次に、キャストsomeType
しvoid *
てパイプに配置します。どうすればそれができますか?
bash - 入力をgrepから別のユーティリティにどのようにパイプしますか?
更新されたログファイルを追跡するために「tail-f」を使用しています。次に、その出力をgrepにパイプして、検索語(この場合は「org.springframework」)を含む行のみを表示します。最後に、grepからの出力を3番目のコマンド'cut'にパイプ処理します。
cutコマンドは、grepから入力を取得できる場合、各行の最初の25文字を削除します。(チェーンから「grep」を削除すると、期待どおりに機能します。)
私はbashでcygwinを使用しています。
実際の結果:「cut」コマンドに接続するために2番目のパイプを追加すると、入力を待っているかのようにハングします(不思議に思うかもしれませんが)。
c++ - スレッドから親プロセスにデータを渡すにはどうすればよいですか?
シングル スレッド ライブラリを使用するメイン プロセスがあり、メイン プロセスのライブラリ関数しか使用できません。ネットワークから受信した情報をキューに入れる親プロセスによって生成されたスレッドがあります。
何かがキューに入っていることをメイン プロセスに伝える必要があります。その後、キューにアクセスしてオブジェクトを処理できます。ライブラリは 1 つのプロセスでしか呼び出せないため、スレッドはこれらのオブジェクトを処理できません。
パイプとシグナルを使用する必要があると思います。また、さまざまなニュースグループから、「自己トリック」パイプを使用する必要があることを読みました。
このシナリオはどのように実装する必要がありますか?
次の投稿のより具体的なケース:
c++ - パイプの読み取りと書き込みを行うときにfdsを閉じる必要があるのはなぜですか?
これが私が何を意味するかを説明するための例です:
}
ただし、一方のプロセスがパイプに継続的に書き込み、もう一方のパイプが読み取りを行う必要がある場合はどうなりますか?
上記の例は、1回の書き込みと1回の読み取りでのみ機能するようです。
.net - psexecから実行された.NETコンソールアプリからの出力はありません
psexec を使用してリモート サーバーでマネージド .net コンソール アプリを実行すると、非常に奇妙な問題が発生します。「プロセスが存在しないパイプに書き込もうとしました」というエラーが表示されます。
ここで、std::cout に出力するアンマネージ C++ プログラムを作成しましたが、問題なく動作します。
興味深いことに、cmd.exe をリモートで実行し、/u (Unicode) オプションを使用すると、エラーは発生しませんが、ガベージ テキストがコンソールにストリーミングされます。
ここで何が起こっているのか、誰か説明できますか?
乾杯、マーク
gcc - GCCにパイプから読み取らせることは可能ですか?
標準入力からソースファイルを読み取るオプションを探しています。主に、 Cコードを生成するgcc
ようなツールからオブジェクトファイルを生成するために、このようなことを行うことができます(のオプションは、生成されたCを書き込みます標準出力へ):flex
flex
-t
生成された C ファイルはあまり気にしないからです。
このようなものは存在しますか、それとも一時ファイルを使用する必要がありますか?
c - HP-UX上のGCC、多くのpoll()、pipe()、およびファイルの問題
「ミドルマン」ロガーの構築に多くの問題があります。これは、/ usr / bin内のアイテムの上のパスに配置し、アプリケーションとの間でやり取りされるすべてのものをキャプチャすることを目的としています。(ブラックボックスのサードパーティアプリが何らかの理由でFTPに失敗しています。)実行されると、仲介者はフォークし、stdoutとstdinを親が制御するパイプとの間でリダイレクトし、/ usr/binでプログラムを実行します。(ハードコードされています;はい、私は知っています、私は悪いです。)
ただし、poll()を実行すると、状況がおかしくなります。ログファイルのハンドルを失い、子供からの出力パイプのポーリングでエラーがスローされ、猫と犬が一緒に暮らし始めます。
誰かがこれに光を当てることができますか?
これが私が現在持っているものです...問題のpoll()は、場所を特定しやすくするためにインデントされていないコメントでマークされています。
2009年6月23日12:20PMを編集
修正後、このプログラムで「banner」を実行しようとしましたが、次のような出力が得られます...
ログファイルには次のものがあります。
ERRNOに0が含まれている理由は、poll()が問題なく返されるためです。エラーで戻ってきたのはpollArray[1].reventsです。これは、childOutPipe[0]がエラーとしてポーリングされたことを意味します。logChar()は、私が知る限り、呼び出されることはありません。
poll()を2つの異なる呼び出しに分割してみます。
さて、私がpoll()を実行した瞬間、エラーメッセージが返されないstdinでも、logFileに書き込む機能が失われます。また、パイプでエラーが発生して出力ポーリングが返される前に、while()ループが数回実行されることを発見しました。私は、poll()が単に失われた原因であるとますます確信するようになっています。
errnoが「不正なファイル番号」に設定されているpoll()が成功した場合でも、logFileへの書き込みはすべて失敗します。これは実際には起こらないはずです。正直なところ、ファイルハンドルにどのような影響があるかわかりません。
さて、どうやら私はバカです。私をまっすぐにしてくれてありがとう。nfdsは配列サイズではなく、バイトサイズであると想定していました。それは修正されました、そして出来上がり!logFileハンドルを強制終了することはもうありません。
python - Python-サブプロセス-Windowsでパイプコマンドを呼び出す方法は?
このコマンドをサブプロセスで実行するにはどうすればよいですか?
私は試した:
しかし得た:
私が気づいたこと:
- Windowsコンソールでコマンドを実行すると正常に機能します。
- ECHOボスコを外せば| 部分的には、上記のpopen呼び出しで正常に実行されます。したがって、この問題はエコーまたは|に関連していると思います。
c - ラッピングを有効にしてターミナルカーソルを行頭に戻す
発生したばかりの行を「上書き」する必要があるフィルター(端末出力用のパイプ内)を作成しています。これは、aに到達するまでstdinをstdoutに文字ごとに渡し\n
、次に特別な動作を呼び出すことによって機能します。私の問題は、行の先頭に戻る方法に関するものです。
私が最初に考えたのは、\r
またはANSIシーケンスを使用することでした\033[1G
。ただし、行が端末で折り返されるのに十分な長さである場合(したがって、行がスクロールする原因となった場合)、これらはカーソルを現在の物理行に戻すだけです。
私の2番目のアイデアは、行の長さ(前から渡された文字数)を追跡し、それを何度も\n
エコーすることでした。\b
ただし、行に制御文字またはエスケープシーケンス(および場合によってはUnicode?)が含まれている場合は、問題が発生します。
すべての特別なシーケンスを検索し、これを使用して文字数を調整する以外に、これを実現する簡単な方法はありますか?
architecture - 非階層型アプリケーションのパターン
エンタープライズアプリケーションアーキテクチャのパターンで、MartinFowlerは次のように書いています。
したがって、この本は、エンタープライズアプリケーションをレイヤーに分解する方法と、それらのレイヤーがどのように連携するかについて説明しています。ほとんどの重要なエンタープライズアプリケーションは、何らかの形式の階層化アーキテクチャを使用しますが、状況によっては、パイプやフィルターなどの他のアプローチが役立つ場合があります。私はそのような状況には立ち入りません。代わりに、階層化アーキテクチャが最も広く役立つため、そのコンテキストに焦点を当てます。
非階層化アプリケーション/アプリケーションの一部を構築するためにどのようなパターンが存在しますか?金融機関の統計モデリングエンジンを利用してください。データアクセス用のレイヤーがあるかもしれませんが、ほとんどのコードは単一のレイヤーにあると思います。そのようなレイヤーにGangofFourのパターンが表示されることを期待しますか?ドメインモデルはどうですか?OOを使用しますか、それとも純粋関数型ですか?
引用では、レイヤーの代替モデルとしてパイプとフィルターについて言及しています。データ処理を分解する方法としてパイプを使用するこのようなエンジンは簡単に想像できます。他にどのようなパターンがありますか?タスクのスケジューリング、結果の集約、作業の分散などの分野に共通のパターンはありますか?MapReduceの代替手段は何ですか?