13
|
Robert S. Barnes Antoni · 技术社区 · 15 年前 |
![]() |
1
7
史蒂文斯这样做可能是为了抓住 行为不同的write()。例如,单个Unix规范 说( http://www.opengroup.org/onlinepubs/000095399/functions/write.html )
|
![]() |
2
3
这将确保代码不会无限旋转,即使文件描述符不是TCP套接字或意外的非阻塞标志生效。在某些系统上,某些传统的非阻塞模式(例如
|
![]() |
3
1
另外,为了在这里稍微有点迂腐,如果您不在编写套接字,我将检查以确保缓冲区长度(在第一个示例中为“count”)实际上是正确计算的。在stevens示例中,如果缓冲区长度为0,则甚至不会执行write()调用。 |
![]() |
4
0
正如您的手册页所说,返回值0对于特殊文件是“不可移植的”。套接字是特殊文件,因此结果可能对它们意味着不同的东西。 通常对于套接字,read()或write()中的0字节值表示套接字已关闭,接收到0后,后续调用将返回-1并返回错误代码。 |
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 5 月前 |
![]() |
user2138149 · 双栈网络服务器无法按预期处理ipv4请求 6 月前 |
![]() |
Marco · PyCharm Linux系统文件上os.stat异常 7 月前 |