gpt4 book ai didi

python - 从无缓冲的 os.fdopen() 文件对象中读取的行为不像 os.read()

转载 作者:太空狗 更新时间:2023-10-30 02:59:40 24 4
gpt4 key购买 nike

我有以下代码

r, w = os.pipe()
rf, wf = os.fdopen(r, 'rb', 0), os.fdopen(w, 'wb', 0)
wf.write('hello')

阅读时

rf.read(10)

它永远阻塞。但是,如果我正在阅读它

os.read(r, 10)

它返回 'hello' 而无需等待 10 个字节可用。

问题是:如何让 .read()os.fdopen() 的文件对象上表现相同? (又名非阻塞)

最佳答案

可能有更好的方法,但您可以使用 fcntl module设置O_NONBLOCK:

import fcntl

r, w = os.pipe()
fcntl.fcntl(r, fcntl.F_SETFL, os.O_NONBLOCK)

关于python - 从无缓冲的 os.fdopen() 文件对象中读取的行为不像 os.read(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31113805/

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