send()*函数如何处理-ssize_t retval = send(sock, buf, SIZE_MAX, 0);
如果send能成功发送SIZE_MAX个字节,则返回类型不足以处理这么大的值(通常SSIZE_MAX〜= SIZE_MAX/2)。

在这种情况下,send()函数是否将自身限制为仅发送SSIZE_MAX个字节?

* ssize_t send(int socket, const void *buffer, size_t length, int flags);-https://linux.die.net/man/3/send

最佳答案

send符合返回成功完成时发送的字节数并在失败时返回-1的要求的唯一方法是,send绝不能发送超过SSIZE_MAX字节的字节。当length参数超过SSIZE_MAX时,send必须失败或返回小于请求的长度。

关于c - 如何处理send()中的缓冲区长度输入和返回值大小不匹配?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48810767/

10-11 04:51
查看更多