我遇到调用send()函数的奇怪行为,其中socketfd为0,p为“test \ n”,长度为5,flags为0:
size_t n = 0;
n = send(socketfd, p, length, flags);
send似乎返回了一个值为18446744073709551615
函数文档说它在出错时返回-1。
代码在mac os x 10.7 lion上编译。任何想法发生了什么?
答案 0 :(得分:1)
size_t是无符号类型,不能包含负值。 实际上,如果你检查send的联机帮助页,它的返回类型是ssize_t,这是签名版本,可以包含负值。
尝试更改类型。