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);
 }