Linux操作系统。 Tcp套接字。
send()/ write()命令何时失败?
只有当内核中的TCP发送缓冲区溢出时,它才返回-1吗?
答案 0 :(得分:4)
来自write()的OpenGroup定义:
成功完成后,写() [XSI]和pwrite()将返回 实际写入的字节数 与fildes相关联的文件。这个 数字永远不会大于 nbyte。否则,返回-1 和errno设置为表示错误。
send()
的send() - OpenGroup页面也是如此您可以通过查看错误来了解更多信息。有关更多信息,请参阅errno上的OpenGroup页面。
答案 1 :(得分:0)
对于您的特定点 - 如果您的写入呼叫是阻塞,(默认情况下),溢出只会阻止您,直到有可用的缓冲区空间。< / p>
如果写入调用是非阻塞,并且缓冲区已满,则将收到错误。