Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > dlライブラリ > DLモジュール > callback
callback(type) -> DL::Symbol
[permalink][rdoc]define_callback(type) -> DL::Symbol
[TODO]
Cレベルのコールバック関数を定義し、その関数(へのポインタ)を保持した DL::Symbol を返します。
require 'dl/import' strlast = DL.callback('IS'){|s| s[-1] } module M extend DL::Importable dlload "./libtest.so" extern "int call(void *, const char*)" end p LIBC.call(strlast, "abcd").chr #=> "d"
/* libtest.so */ int call(int (*cb)(const char*), const char* s){ return (*cb)(s); }