在我的系统上打字man recv(),我得到:
ssize_t
recv(int socket, void *buffer, size_t length, int flags);
…
RETURN VALUES
These calls return the number of bytes received, or -1 if an error occurred.
请注意,它length是无符号类型size_t,并且函数的结果是有符号的ssize_t。
如果传递的值大于SSIZE_MAXfor length,那么理论上recv()填充指向的内存buffer并返回除 之外的负值的情况如何-1?是否有类型的套接字允许很长的消息(Unix 域?)?怎么样MSG_WAITALL?