Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > dlライブラリ > DLモジュール > callback
callback(type) -> DL::Symboldefine_callback(type) -> DL::SymbolCレベルのコールバック関数を定義し、その関数(へのポインタ)を保持した 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);
}