pythonからC言語を利用する(1)

あるC言語のプログラムをpythonから利用したくて、直接Cのlibraryを叩けないかと考え、pythonからC言語を利用する実験を行ってみました。

ほとんど以下のサイトを参考にさせてもらって、実験してみました。

PythonからC言語の関数を呼び出す
http://d.hatena.ne.jp/kakurasan/20091022/p2

Cのlibを呼ぶための準備

やることは以下
(1)ctypesモジュールのimport
これにより、cのlibraryを直接読み出せる。

ctypesチュートリアル
http://www.python.jp/doc/2.6/library/ctypes.html?highlight=ctypes#ctypes

(2)呼び出したいlibraryをloadする。
(3)関数をcallする。

Cの関数を呼んでみた

以下、rand()とprintf()を呼んでみました。

$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes
>>> libc = ctypes.cdll.LoadLibrary('libc.so.6')
>>> libc.rand()
1804289383
>>> libc.rand()
846930886
>>> retval = libc.printf('TEST\n')
TEST
>>>

既に動いているcのプログラムを実際に呼んでみる例もそのうち載せようと思います。