Type:
Module
Constants:
TYPE_VOID : Document-const

TYPE_VOID

C type - void

TYPE_VOIDP : Document-const

TYPE_VOIDP

C type - void*

TYPE_CHAR : Document-const

TYPE_CHAR

C type - char

TYPE_SHORT : Document-const

TYPE_SHORT

C type - short

TYPE_INT : Document-const

TYPE_INT

C type - int

TYPE_LONG : Document-const

TYPE_LONG

C type - long

TYPE_LONG_LONG : Document-const

TYPE_LONG_LONG

C type - long long

TYPE_FLOAT : Document-const

TYPE_FLOAT

C type - float

TYPE_DOUBLE : Document-const

TYPE_DOUBLE

C type - double

TYPE_SIZE_T : Document-const

TYPE_SIZE_T

C type - size_t

TYPE_SSIZE_T : Document-const

TYPE_SSIZE_T

C type - ssize_t

TYPE_PTRDIFF_T : Document-const

TYPE_PTRDIFF_T

C type - ptrdiff_t

TYPE_INTPTR_T : Document-const

TYPE_INTPTR_T

C type - intptr_t

TYPE_UINTPTR_T : Document-const

TYPE_UINTPTR_T

C type - uintptr_t

ALIGN_VOIDP : Document-const

ALIGN_VOIDP

The alignment size of a void*

ALIGN_CHAR : Document-const

ALIGN_CHAR

The alignment size of a char

ALIGN_SHORT : Document-const

ALIGN_SHORT

The alignment size of a short

ALIGN_INT : Document-const

ALIGN_INT

The alignment size of an int

ALIGN_LONG : Document-const

ALIGN_LONG

The alignment size of a long

ALIGN_LONG_LONG : Document-const

ALIGN_LONG_LONG

The alignment size of a long long

ALIGN_FLOAT : Document-const

ALIGN_FLOAT

The alignment size of a float

ALIGN_DOUBLE : Document-const

ALIGN_DOUBLE

The alignment size of a double

ALIGN_SIZE_T : Document-const

ALIGN_SIZE_T

The alignment size of a size_t

ALIGN_SSIZE_T : Document-const

ALIGN_SSIZE_T

The alignment size of a ssize_t

ALIGN_PTRDIFF_T : Document-const

ALIGN_PTRDIFF_T

The alignment size of a ptrdiff_t

ALIGN_INTPTR_T : Document-const

ALIGN_INTPTR_T

The alignment size of a intptr_t

ALIGN_UINTPTR_T : Document-const

ALIGN_UINTPTR_T

The alignment size of a uintptr_t

WINDOWS : Qtrue

Returns a boolean regarding whether the host is WIN32

SIZEOF_VOIDP : Document-const

SIZEOF_VOIDP

size of a void*

SIZEOF_CHAR : Document-const

SIZEOF_CHAR

size of a char

SIZEOF_SHORT : Document-const

SIZEOF_SHORT

size of a short

SIZEOF_INT : Document-const

SIZEOF_INT

size of an int

SIZEOF_LONG : Document-const

SIZEOF_LONG

size of a long

SIZEOF_LONG_LONG : Document-const

SIZEOF_LONG_LONG

size of a long long

SIZEOF_FLOAT : Document-const

SIZEOF_FLOAT

size of a float

SIZEOF_DOUBLE : Document-const

SIZEOF_DOUBLE

size of a double

SIZEOF_SIZE_T : Document-const

SIZEOF_SIZE_T

size of a size_t

SIZEOF_SSIZE_T : Document-const

SIZEOF_SSIZE_T

size of a ssize_t

SIZEOF_PTRDIFF_T : Document-const

SIZEOF_PTRDIFF_T

size of a ptrdiff_t

SIZEOF_INTPTR_T : Document-const

SIZEOF_INTPTR_T

size of a intptr_t

SIZEOF_UINTPTR_T : Document-const

SIZEOF_UINTPTR_T

size of a uintptr_t

RUBY_FREE : Document-const

RUBY_FREE

Address of the ruby_xfree() function

BUILD_RUBY_PLATFORM : Document-const

BUILD_RUBY_PLATFORM

Platform built against (i.e. "x86_64-linux", etc.)

See also RUBY_PLATFORM

RTLD_GLOBAL : Handle::RTLD_GLOBAL # :nodoc:

Add constants for backwards compat

RTLD_LAZY : Handle::RTLD_LAZY
RTLD_NOW : Handle::RTLD_NOW

A libffi wrapper for Ruby.

Description

Fiddle is an extension to translate a foreign function interface (FFI) with ruby.

It wraps libffi, a popular C library which provides a portable interface that allows code written in one language to clal code written in another language.

Example

Here we will use Fiddle::Function to wrap floor(3) from libm

1
2
3
4
5
6
7
8
9
10
11
require 'fiddle'
 
libm = Fiddle.dlopen('/lib/libm.so.6')
 
floor = Fiddle::Function.new(
  libm['floor'],
  [Fiddle::TYPE_DOUBLE],
  Fiddle::TYPE_DOUBLE
)
 
puts floor.call(3.14159) #=> 3.0
[] 2
  • References/Ruby on Rails/Ruby/Classes/Fiddle/Fiddle::Handle

sym(name) Instance Public methods Get the address as an

2025-01-10 15:47:30
[] 2
  • References/Ruby on Rails/Ruby/Classes/Fiddle/Fiddle::Pointer

ptr[index] â an_integerptr[start, length] â a_string Instance Public methods

2025-01-10 15:47:30
to_value
  • References/Ruby on Rails/Ruby/Classes/Fiddle/Fiddle::Pointer

to_value Instance Public methods Cast this pointer to a ruby object.

2025-01-10 15:47:30
dlload
  • References/Ruby on Rails/Ruby/Classes/Fiddle/Fiddle::Importer

dlload(*libs) Instance Public methods Creates an array of handlers for the given

2025-01-10 15:47:30
eql?
  • References/Ruby on Rails/Ruby/Classes/Fiddle/Fiddle::Pointer

ptr.eql?(other) => true or false Instance Public methods Returns true if

2025-01-10 15:47:30
malloc
  • References/Ruby on Rails/Ruby/Classes/Fiddle/Fiddle::CStructEntity

malloc(types, func = nil) Class Public methods Allocates a

2025-01-10 15:47:30
[]
  • References/Ruby on Rails/Ruby/Classes/Fiddle/Fiddle::Importer

[](name) Instance Public methods Returns the function mapped to name

2025-01-10 15:47:30
import_function
  • References/Ruby on Rails/Ruby/Classes/Fiddle/Fiddle::Importer

import_function(name, ctype, argtype, call_type = nil) Instance Public methods Returns

2025-01-10 15:47:30
set_ctypes
  • References/Ruby on Rails/Ruby/Classes/Fiddle/Fiddle::CUnionEntity

set_ctypes(types) Instance Public methods Calculate the necessary offset and

2025-01-10 15:47:30
null?
  • References/Ruby on Rails/Ruby/Classes/Fiddle/Fiddle::Pointer

null? Instance Public methods Returns true if this is a null pointer

2025-01-10 15:47:30