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/