Files
可以 close() 阻塞嗎?
例如,如果您關閉了一個管道或套接字,其寫入緩衝區中仍有數據,而另一端的程序尚未讀取,那麼 close() 是否會阻塞,直到數據被讀取或其他程序死亡?
如果沒有設置 O_NONBLOCK 並且沒有為 STREAM 發布信號,並且如果模組的寫入隊列中有數據,則 close() 將等待一段未指定的時間(對於每個模組和驅動程序),以便在拆卸之前耗盡任何輸出流。
和:
如果 fildes 引用一個套接字,close() 將導致該套接字被銷毀。如果套接字處於連接模式,並且為具有非零延遲時間的套接字設置了 SO_LINGER 選項,並且套接字有未傳輸的數據,則 close() 將阻塞直到目前的延遲時間間隔,直到傳輸所有數據.