在我的系统上打字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_MAX
for length
,那么理论上recv()
填充指向的内存buffer
并返回除 之外的负值的情况如何-1
?是否有类型的套接字允许很长的消息(Unix 域?)?怎么样MSG_WAITALL
?