0

Windows(および他のOSもプロセス全体)で名前付きパイプはありますか?

私はこの奇妙なシナリオを持っています:

「Workers.exe」の束を生成する「Controller.exe」というプログラムを作成すると、Controller.exeは「Pipe0」という名前付きパイプを作成します...「PipeN」を介して。

次に、Workers.exe(パイプの名前としてコマンドライン引数で開始されます)がこのパイプに接続します。

したがって、負荷を生成するこのcontroller.exeの顧客は、Worker.exeプロセスの5倍を作成したプログラム( "controller.exe")の5つのインスタンスを開始しました

しかし、Controller.exeのコードでは、「Pipe0」...「PipeN」という名前付きパイプを作成しています。私の質問は、これがどのように機能するかということです。

名前付きパイプはOS全体ではありませんか?同様に、Worker.exeは、接続する名前付きパイプ「pipe0」をどのように認識しますか?

4

2 に答える 2

0

メカニズムの説明については、名前付きパイプのMSDNページを確認してください。シナリオでは、同じ名前のパイプを作成しようとすると、INVALID_HANDLE_VALUEエラーが発生する可能性があります。少なくとも、それはCreateNamedPipe関数リファレンスが述べていることです。

于 2009-11-12T10:42:57.090 に答える
0

* NIXについてはわかりませんが、Windowsでは、すべてのプロセスで共有される名前付きカーネルオブジェクト(名前付きミューテックスなど)と同じ名前空間にあります。どのパイプをリッスンするかについては、コマンドライン引数として渡します。

于 2009-11-12T10:45:21.297 に答える