| Last Update: | Mon Jul 16 15:12:12 -0600 2007 |
The io-extra package provides a few extra IO methods that you may find handy. They are IO.closefrom, IO.fdwalk, IO#directio? and IO#directio=.
Not supported on MS Windows or OS X.
rake test (optional) rake install
rake test (optional) rake install_gem
You might be wondering what the difference is between my implementation of IO.closefrom and a pure Ruby version that looks something like this:
def IO.closefrom(n)
0.upto n do |fd|
IO.for_fd(fd).close
end
end
The primary difference is that this walks all file descriptors, rather than only open file descriptors. However, I should note that this only applies if your platform supports the closefrom() function. In that case, the only advantage is speed.
You might also be wondering what the difference is between my implementation of IO.fdwalk and a pure Ruby version that looks something like this:
def IO.fdwalk(n)
ObjectSpace.each_object(File){ |f|
yield f if f.fileno >= n
}
end
The primary difference is that this only closes Ruby file objects, not necessarily every filehandle opened by the Ruby process. For example, handles opened via system() calls.
The OS X platform does not support closefrom(), fdwalk() or directio(). The hand-crafted IO.closefrom function will not work because the getrlimit() function on OS X does not work. Patches welcome.
For further documentation, see the io_extra.txt file or the inline documentation that was generated by RDoc (if you did a gem install).
None that I‘m aware of. Please file any bug reports on the project page at www.rubyforge.org/projects/shards.
I may add the File::O_DIRECT open constant on platforms that support it.
Ruby‘s
(C) 2003-2007 Daniel J. Berger All Rights Reserved
This package is provided "as is" and without any express or implied warranties, including, without limitation, the implied warranties of merchantability and fitness for a particular purpose.
Daniel J. Berger djberg96 at nospam at gmail dot com imperator on IRC (irc.freenode.net)