使用Python Twisted with File Descriptors的示例

Bra*_*ore 3 python pipe twisted file-descriptor mkfifo

我希望使用twisted来控制主进程和一组从进程之间的Linux管道(os.pipe())和fifos(os.mkfifo())之间的通信.虽然我很肯定,但是对于这些类型的文件描述符可以使用twisted(毕竟,对于*nix作为文件描述符抽象的tcp套接字,twisted是很好的),我找不到任何这种用法的例子.任何人有任何链接,示例代码或建议?

Jea*_*one 12

您可以使用reactor.spawnProcess它在父进程和它生成的子进程之间设置任意文件描述符映射.例如,要运行一个程序并为它提供两个额外的输出描述符(除了stdin,stdout和stderr),它可以将字节发送回父进程,你可以这样做:

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

反应器会照顾你创建的管道,并呼吁childDataReceivedProcessProtocol你当数据从他们读通过.有关详细信息,请参阅spawnProcess API文档.

如果你还在孩子端使用Twisted,那么你最想看的就是twisted.internet.stdio.核心示例中的stdiodemo.py和stdin.py 将向您展示如何使用该模块.