c

lispとrubyとpythonと その4 Cライブラリの呼び出し(python) の追記

lispとrubyとpythonと その4 Cライブラリの呼び出し(python) - テンポラリにfgshunさんからコメントをもらったので試してみた。 呼び出しているcライブラリはこんどもlispとrubyとpythonと その4 Cライブラリの呼び出し(lisp) - テンポラリと同じもの。呼…

lispとrubyとpythonと その4 Cライブラリの呼び出し(まとめ)

それぞれの言語でCと連携してみたまとめ、というか感想というか。 lispもRubyもPythonも呼び出し自体はわりと簡単。 ちゃんと動くかどうかは別として・・・。 一番すんなり理解できたのはSBCLだったような気がする。 Rubyの「拡張ライブラリをCで書く」って…

lispとrubyとpythonと その4 Cライブラリの呼び出し(python)

最後はpython。 Cとの連携方法はいくつかあるみたい(boost.pythonとかswingとか)あるみたいなんだけど、ctypesを使用。 呼び出しているcライブラリはlispとrubyとpythonと その4 Cライブラリの呼び出し(lisp) - テンポラリと同じ。 参考は、まぁここ。 ht…

lispとrubyとpythonと その4 Cライブラリの呼び出し(ruby)

つぎはruby。 rubyだとCライブラリを呼び出すというよりはrubyのクラスをCで書く感じ。 ruby1.9でためしたんだけど、1.9では RSTRING(xxx).ptr とか RSTRING(xxx).len ではなくて RSTRING_LEN(xxx) RSTRING_PTR(xxx) と書くみたい。参考はこのへん。 http://…

lispとrubyとpythonと その4 Cライブラリの呼び出し(lisp)

今回はCライブラリの呼び出し。 SBCL限定なので注意。 sb-alienにCを呼び出すために必要なもろもろが入ってる。 一応動いてるんだけど、これであってんのかなぁ。 C側でmallocした時とか、GCのコンパクションでまずいことになったりしないんだろうか・・・。…

linuxとC 共有ライブラリの動的ロード

ライブラリの動的ロード。 んーー。○libshared.h #include <stdio.h> typedef struct { int a; int b; } MyType; int hello2(MyType t,char *buf); int hello(char *buf); >|| ○libshared.c >|cpp| #include <stdio.h> #include "libshared.h" int hello2(MyType type,char *bu</stdio.h></stdio.h>…

linuxとC 共有ライブラリ

急にLinuxでCを書き始めたのは普通のLinuxプログラミングを買ったからだったりする。 だめだ。「普通の」はじまりの本を無条件に買ってしまったような気が・・・。その2 共有ライブラリ○libshared.h int hello(char *buf); ○libshared.c #include <stdio.h> #include</stdio.h>…

linuxとC スタティックリンクライブラリ

Linux + C スタティックリンクライブラリ コンパイル時にコードが組み込まれる ダイナミックリンク プログラムの実行時にロードされる ダイナミックロード 自分でロードして自分で呼び出すその1 スタティックリンクライブラリ○staticlinklib.h #ifndef _ST…