[英]Force blocking read after EAGAIN?
我有一个开放的文件描述符,可以不阻塞地读取。 我需要做的就是简单地读取所有数据,直到到达EOF,然后将该数据写入可写文件描述符中。 由于执行此复制的过程并不“了解”周围发生的任何事情,因此我不认为我可以在等待数据时做一些有用的事情,并且我不想使用while
循环(while errno
不是EAGAIN
),因为我认为这很浪费。 有没有办法阻止或暂停复制过程的执行,直到数据可用为止?
您的其他答案只是取消设置O_NONBLOCK
,这会将文件设置回阻止状态。 如果您的情况合适,那很好。 但是,如果没有,则可以使用select()
进行阻塞,直到您的非阻塞文件描述符可读为止。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.