2
如果我以阻塞模式写入文件/设备,write()
呼叫在将所有字节(假定没有信号中断)写入Buffered Cache(Kernel Buffer)
时返回,或者在将所有字节写入文件/设备时返回? (这是我早期的question的延伸)。什么时候写系统调用返回?
如果我以阻塞模式写入文件/设备,write()
呼叫在将所有字节(假定没有信号中断)写入Buffered Cache(Kernel Buffer)
时返回,或者在将所有字节写入文件/设备时返回? (这是我早期的question的延伸)。什么时候写系统调用返回?
如果成功,则将数据写入内核内存后返回write
。系统调用write
对写入磁盘不作任何保证,因此您需要fsync
。实际上,fsync
不保证这些位实际写入到磁盘本身:只是IO操作已完成。
(当然,您可以使用各种平台特定的模式和设置来改变此行为。)