gpt4 book ai didi

python - 使用带有文件描述符的 Python Twisted 的示例

转载 作者:太空宇宙 更新时间:2023-11-03 12:52:17 26 4
gpt4 key购买 nike

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

最佳答案

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

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

reactor 将负责为您创建管道,并在从中读取数据时调用您传入的 ProcessProtocol 上的 childDataReceived。查看spawnProcess API docs了解详情。

如果您还在子端使用 Twisted,那么您主要希望查看 twisted.internet.stdiocore examples 中的 stdiodemo.py 和 stdin.py将向您展示如何使用该模块。

关于python - 使用带有文件描述符的 Python Twisted 的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2069262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com