我知道read()是一个阻塞调用,除非我将套接字设置为非阻塞。所以,我期望请求4K数据的read()调用应该返回一个正值(读取的字节数)或-1(可能是客户端重置连接等错误)。 我的问题是:在任何情况下,read()是否可能返回'0'?
我是这样处理read()的:
if ((readval = read(acceptfd, buf, sizeof(buf) - 1)) < 0)
{
}
else
{
buf[readval] = 0;
//Do some thing with data
}
如果read()返回零,这段代码将出错,我知道如何修复它。但是read()可能返回零吗?