我知道read()是一個阻塞調用,除非我使套接字非阻塞。所以我期望read()調用請求4K數據應該返回一個正值(讀取的字節數)或錯誤-1(可能的連接重置由客戶端等)。我的問題是:可以在任何情況下read()返回'0'嗎?可以在連接的套接字上讀取()函數返回零字節嗎?
我處理read()方法是這樣的:
if ((readval = read(acceptfd, buf, sizeof(buf) - 1)) < 0)
{
}
else
{
buf[readval] = 0;
//Do some thing with data
}
該代碼炸彈如果閱讀()返回零,我知道如何解決它。但是read()可能返回零嗎?
您是否考慮閱讀* man *頁面? – EJP 2016-01-25 11:23:04