对于never / unconnected套接字,socket上的send()函数不返回-1

时间:2013-02-09 23:34:06

标签: c sockets

我遇到调用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上编译。任何想法发生了什么?

1 个答案:

答案 0 :(得分:1)

size_t是无符号类型,不能包含负值。 实际上,如果你检查send的联机帮助页,它的返回类型是ssize_t,这是签名版本,可以包含负值。

尝试更改类型。