[英]Force blocking read after EAGAIN?
我有一個開放的文件描述符,可以不阻塞地讀取。 我需要做的就是簡單地讀取所有數據,直到到達EOF,然后將該數據寫入可寫文件描述符中。 由於執行此復制的過程並不“了解”周圍發生的任何事情,因此我不認為我可以在等待數據時做一些有用的事情,並且我不想使用while
循環(while errno
不是EAGAIN
),因為我認為這很浪費。 有沒有辦法阻止或暫停復制過程的執行,直到數據可用為止?
您的其他答案只是取消設置O_NONBLOCK
,這會將文件設置回阻止狀態。 如果您的情況合適,那很好。 但是,如果沒有,則可以使用select()
進行阻塞,直到您的非阻塞文件描述符可讀為止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.