1

我在调用 send() 函数时遇到了一个奇怪的行为,其中 socketfd 是 0,p 是 "test\n" ,长度是 5 ,标志是 0 :

  size_t n = 0;

  n = send(socketfd, p, length, flags);

send 似乎在 n 18446744073709551615 中返回一个值

函数文档说它在错误时返回 -1。

代码在 mac os x 10.7 lion 上编译。有什么想法吗?

4

1 回答 1

1

size_t是无符号类型,它不能包含负值。事实上,如果你查看 send 的手册页,它的返回类型是ssize_t,它是签名版本,可以包含负值。

尝试更改类型。

于 2013-02-09T23:41:05.850 回答