2011-12-21 63 views
2

如果我以阻塞模式写入文件/设备,write()呼叫在将所有字节(假定没有信号中断)写入Buffered Cache(Kernel Buffer)时返回,或者在将所有字节写入文件/设备时返回? (这是我早期的question的延伸)。什么时候写系统调用返回?

回答

1

如果成功,则将数据写入内核内存后返回write。系统调用write对写入磁盘不作任何保证,因此您需要fsync。实际上,fsync不保证这些位实际写入到磁盘本身:只是IO操作已完成。

(当然,您可以使用各种平台特定的模式和设置来改变此行为。)

相关问题