123456789_123456789_123456789_123456789_123456789_

Module: FFI::IO

Relationships & Source Files
Defined in: lib/ffi/io.rb

Overview

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

Class Method Summary

Class Method Details

.for_fd(fd, mode = "r") ⇒ ::IO

Synonym for .for_fd.

Parameters:

  • fd (Integer)

    file decriptor

  • mode (String) (defaults to: "r")

    mode string

[ GitHub ]

  
# File 'lib/ffi/io.rb', line 39

def self.for_fd(fd, mode = "r")
  ::IO.for_fd(fd, mode)
end

.native_read(io, buf, len) ⇒ Integer

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.

Parameters:

  • io (#read)

    io to read from

  • buf (AbstractMemory)

    destination for data read from io

  • len (nil, Integer)

    maximul number of bytes to read from io. If nil, read until end of file.

Returns:

  • (Integer)

    length really read, in bytes

[ GitHub ]

  
# 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