3

ツイストを使用して、マスター プロセスと一連のスレーブ プロセス間の Linux パイプ (os.pipe()) および fifo (os.mkfifo()) 間の通信を制御しようとしています。これらのタイプのファイル記述子にtwistedを使用できると確信していますが(結局のところ、twistedは* nixがファイル記述子として抽象化するtcpソケットに最適です)、このタイプの使用例は見つかりません。リンク、サンプル コード、またはアドバイスはありますか?

4

2 に答える 2

12

を使用reactor.spawnProcessして、親プロセスとそれが生成する子プロセスの間に任意のファイル記述子マッピングを設定できます。たとえば、プログラムを実行して、親プロセスにバイトを送り返すことができる2つの追加の出力記述子(stdin、stdout、およびstderrに加えて)を与えるには、次のようにします。

reactor.spawnProcess(protocol, executable, args,
                     childFDs={0: 'w', 1: 'r', 2: 'r', 3: 'r', 4: 'r'})

リアクターがパイプの作成を処理し、パイプからデータが読み取られるときにパスインを呼び出しますchildDataReceivedProcessProtocol詳細については、spawnProcessAPIのドキュメントを参照してください。

子側でもTwistedを使用している場合は、主にを確認する必要がありますtwisted.internet.stdioコアの例のstdiodemo.pyとstdin.pyは、そのモジュールの使用方法を示しています。

于 2010-01-15T13:42:33.620 に答える
-3

非同期I/O用の組み込みはありません。誰かがそれのためにlibaioラッパーを書いたが、それは長い間触れられておらず、それがまだ機能するかどうか私にはわからない。

最悪の場合select、読むことができるものがあるかどうかを確認するために使用できますが、それは書くのに役立ちません。

于 2010-01-15T03:27:50.863 に答える