这个的反面是什么?
fcntl.fcntl(MyStream.fileno(), fcntl.F_SETFL, os.O_NONBLOCK)
我试过了
fcntl.fcntl(MyStream.fileno(), fcntl.F_SETFL, os.O_BLOCK)
但它会导致AttributeError: 'module' object has no attribute 'O_BLOCK'
.
为了提供一点背景知识,我将数据分块输送到popen
'ed 进程的 STDIN 中。如果 STDOUT 中有数据等待,我需要立即读取它并将其传递回客户端(因此切换到非阻塞)。但是,当我完成管道数据输入后,我需要阻塞,直到我在 STDOUT 上获得 EOF。
如果有更好的方法来做到这一点(理想情况下是跨平台的?)那么我全神贯注