提问者:小点点

Python:在Cygwin中从文件/流进行非阻塞读取


如果我在Unix系统上,那么我可以在Python中执行类似的操作,以非阻塞模式打开文件:

fd=os。打开(文件路径,os.O\u非块)

但是,在Windows中,os。O_NONBLOCK不存在,如果我们尝试使用它,就会得到一个os模块错误“module”对象没有O_NONBLOCK属性。对于非阻塞输入,我们必须这样做:https://github.com/jonathanslenders/python-prompt-toolkit/blob/master/prompt_toolkit/terminal/win32_input.py#L99

但在Cygwin中,非阻塞输入是如何工作的?Cygwin是否模拟类似于O_NONBLOCK选项的东西?


共1个答案

匿名用户

O_NONBLOCK可用于C编程。您可以在头文件/usr/include/sys/\u default\u fcntl中看到定义。H

#define _FNONBLOCK  0x4000  /* non blocking I/O (POSIX style) */
#define O_NONBLOCK  _FNONBLOCK

您可以直接尝试神奇的数字0x4000。