[トップ][ノート][編集履歴][一覧][最近の更新][->English]

uim/2009/10/13/ffi

Category of uim

uimのschemeから共有ライブラリにアクセスするには、 モジュールを作って(module-load)する、という方法が用意されているのだけど、 そもそも共有ライブラリを作成できる言語処理系でないとモジュールを作成できないし、ちょっとライブラリを試したいだけなのにファイルを作るのはめんどう。

ということで、uim-trunkにlibffiにアクセスするモジュールを投入した。

libffiをインストール後、 --with-ffiでconfigureしたuimをインストールすれば、 uim-shから、

uim> (module-load "ffi")
#t
(define libm
       (dlopen "libm.so" (assq-cdr '$RTLD_LAZY (dlopen-mode))))
libm
uim> (ffi-function libm 'double "atan" '((double . "1.0")))
"0.785398"
uim> (dlclose libm)
#t

とかできる。

もちろん引数の数や型を間違えると即死するので注意が必要。

blog comments powered by Disqus