instance method IO#fdatasync

fdatasync -> 0 | nil[permalink][rdoc]

IO のすべてのバッファされているデータを直ちにディスクに書き込みます。

fdatasync(2) をサポートしていない OS 上では代わりに IO#fsync を呼びだします。

IO#fsync との違いは fdatasync(2) を参照してください。

[EXCEPTION] NotImplementedError:
fdatasync(2)fsync(2) もサポートされていない OS で発生します。


require "tempfile"

Tempfile.open("testtmpfile") do |f|
  f.print "test"
  File.read(f.path) # => ""
  f.fdatasync
  File.read(f.path) # => "test"
end