module FFI::IO

This module implements a couple of class methods to play with IO.

Public Class Methods

@param [Integer] fd file decriptor @param [String] mode mode string @return [::IO] Synonym for IO::for_fd.

# File lib/ffi/io.rb, line 39
def self.for_fd(fd, mode = "r")
  ::IO.for_fd(fd, mode)
end

@param [#read] io io to read from @param [AbstractMemory] buf destination for data read from io @param [nil, Integer] len maximul number of bytes to read from io. If nil,

read until end of file.

@return [Integer] length really read, in bytes

A version of IO#read that reads data from an IO and put then into a native buffer.

This will be optimized at some future time to eliminate the double copy.

# File lib/ffi/io.rb, line 53
def self.native_read(io, buf, len)
  tmp = io.read(len)
  return -1 unless tmp
  buf.put_bytes(0, tmp)
  tmp.length
end