0
我有一个关于read()
与“资源暂时不可用”的问题。 我使用PIPE作为线程间的IPC。poll()和read()“资源暂时不可用”
在我的程序中,阅读线程检查PIPE是否有使用poll()
的数据,然后使用来自PIPE的read()
。 但是,有时read()
返回-1并出现以下错误。
资源暂时不可用
我不知道为什么之后read()
返回错误poll()
检查。
我有一个关于read()
与“资源暂时不可用”的问题。 我使用PIPE作为线程间的IPC。poll()和read()“资源暂时不可用”
在我的程序中,阅读线程检查PIPE是否有使用poll()
的数据,然后使用来自PIPE的read()
。 但是,有时read()
返回-1并出现以下错误。
资源暂时不可用
我不知道为什么之后read()
返回错误poll()
检查。
您可能已将管道fd设置为非阻塞模式O_NONBLOCK,并且当读取发生在空文件上时,它将返回EAGAIN。
你确定你从来没有尝试读'poll' *没有*说它是可读的吗? “poll”表示它可读后,你不会调用'read'两次或更多次? (在任何一种情况下,它可能都不可读) – immibis
这本身不是问题。当你得到这个特定的错误时,这意味着此时没有数据。因此,只要采取相应措施,并等待数据到达(例如返回到您的poll()并等待它通知您可以读取的数据()) – nos