15-部分写(Partial Write)
2.3.1 部分写(Partial Write)
和read()调用的部分读场景相比,write()调用不太可能会返回部分写。此外,write()系统调用不存在EOF的场景。对于普通文件,除非发生错误,write()操作保证会执行整个写请求。
因此,对于普通文件,不需要执行循环写操作。但是,对于其他的文件类型,比如socket,需要循环来保证写了所有请求的字节。使用循环的另一个好处是第二次调用write()可能会返回错误值,说明第一次调用为什么只执行了部分写(虽然这种情况并不常见)。以下是write()调用示例代码: