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

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
last_error
  • References/Ruby on Rails/Ruby/Classes/Fiddle

last_error() Class Public methods Returns the last Error of the

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

Fiddle.realloc(addr, size) Class Public methods Change the size of the memory

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

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

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

size(types) Class Public methods Returns the size needed for the union with

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

win32_last_error=(error) Class Public methods Sets the last win32 Error

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

entity_class() Class Public methods accessor to

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

close_enabled? Instance Public methods Returns true if dlclose()

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

ptr.to_str => stringptr.to_str(len) => string Instance Public methods

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

sizeof(ty) Instance Public methods Returns the sizeof ty, using

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

bind(signature, *opts, &blk) Instance Public methods Creates a global method

2025-01-10 15:47:30