So I was doing some research on the File
class in Ruby. As I was digging I learned that File
was a subclass of IO
. To my understanding when you create an IO
object (or File
object), a buffer is opened to that file that allows you to read and write to that file. I don't completely understand what a buffer is, but apparently it stays open until you call the #close
method on the object. To my understanding this buffer is opened whether you call File.new
or File.open
(please correct me if I'm wrong on any of this).
So say you like to use the File
class for paths and stuff like this:
f = File.new('spec/tmp/testfile.md')
File.basename(f)
But you never call f.close
. Does leaving this buffer open leak memory? If I called this several hundred times for a tree in a filesystem would I be in deep trouble?
Thanks for your replies!
PS I know you can just use File.basename('spec/tmp/testfile.md')
instead, I'm just using this as an example