我知道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