ts notes correctly: > pigeon% b.rb > 183 > 183 > 190 So I try to fix that one: % type file_size_2.rb #!/usr/bin/ruby class File def size File.size(self.path) end end fname = "file_size_test.rb" p File.size(fname) a = File.new(fname, "a") a.print "__END__\n" p a.flush.size #^^^^^^ a.close p File.size(fname) % ruby file_size_2.rb 227 236 236 IMHO it's ok to require the programmer to flush before querying. Thus, File#size would return the physical size; which may differ from the logical size as data is still buffered. Of course we should discuss about real semantics and need before incorporation to Ruby core. - Aleksi