模块 Fiddle

Ruby 的 libffi 封装器。

描述

Fiddle 是一个扩展,用于将外部函数接口 (FFI) 与 Ruby 转换。

它封装了 libffi,这是一个流行的 C 库,提供了一个可移植的接口,允许一种语言编写的代码调用另一种语言编写的代码。

示例

在这里,我们将使用 Fiddle::Function 来封装 libm 中的 floor(3)

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