【发布时间】:2012-01-24 22:47:31
【问题描述】:
如果我在阻塞模式下写入文件/设备,write() 调用是否会在将所有字节(假设没有信号中断)写入Buffered Cache(Kernel Buffer) 时返回,或者它会在将所有字节写入文件/设备时返回? (这是我之前的question 的扩展)。
【问题讨论】:
标签: c
如果我在阻塞模式下写入文件/设备,write() 调用是否会在将所有字节(假设没有信号中断)写入Buffered Cache(Kernel Buffer) 时返回,或者它会在将所有字节写入文件/设备时返回? (这是我之前的question 的扩展)。
【问题讨论】:
标签: c
如果成功,write 在将数据写入内核内存后返回。 write 系统调用不保证写入磁盘,为此您需要 fsync。实际上,fsync 并不能保证这些位实际上已写入盘片本身:只是 IO 操作已完成。
(当然,您可以使用各种特定于平台的模式和设置来更改此行为。)
【讨论】: