- 465 名前:デフォルトの名無しさん mailto:sage [2018/05/06(日) 16:44:24.01 ID:Bse1bLkg.net]
- Java 側で FileOutputStream を使っていても OS 側で密かにバッファリングされていた場合は
Java の方からではどうすることもできないかもね。 ま、実際今時のOSだとディスクに対するライトキャッシュはデフォルトではONになっているのが 普通だろうからどんなプログラムでも(Javaであろうがなかろうが)OSのシステムコールの write() 直後にディスクに書かれていないことはあり得る。但しその場合は write() 直後に read() すると あたかもディスクから読んだかのように書いた内容が読める。しかしいきなり電源が落ちると ディスクに書いてない分の内容は失われる。 これを防止する方法は Linux ならシステムコールの sync() を呼ぶか sync コマンドを 実行れば良いのだが、しかし他のOSでは違うやり方になるだろう。統一された方法はない。 大雑把に UNIX 系 OS だと sync() でやると昔からの慣習で決まっているだけ。同じUNIX系 OSでも違う場合もあり得るし特殊なハードウェアの
|

|