我有一个以非阻塞模式打开的命名管道:
fd = os.open('mypipe', os.O_RDONLY|os.O_NONBLOCK)
我希望能够知道是否有什么内容可以阅读超时,所以我尝试使用select:
poller = select.poll()
poller.register(fd, select.POLLIN)
但是当我尝试轮询并指定超时时:
poller.poll(3000)
......它总会立即返回,即使没有什么可读的。
我的问题是:是否可以在使用O_NONBLOCK标志打开的文件描述符上使用poll()超时?是否有可能我做错了,还有另一种方法可以达到这个目的吗?