スポンサーリンク

Pythonのctypesを使って、c言語の自作関数を呼び出す

Pythonのctypesを使って、c言語の自作関数を呼び出すことができます。

例えば、下記のようにsample.cにadd3Num()を定義します。

$ cat sample.c
#include <stdio.h>
 
int add3Num(int a, int b, int c){
    return a + b + c;
}

-sharedオプションをつけてコンパイルし、sample.soを生成します。

$ gcc -shared -o sample.so sample.c

Pythonのファイルには、ctypesをimportして、先程のsample.soをロードします。
あとは、呼び出すだけになります。

import ctypes

libSample = ctypes.cdll.LoadLibrary("sample.so")
        
if __name__ == '__main__':
	num = libSample.add3Num(1, 3, 5)
	print(num)

下記が実行結果になります。

$ ./sample.py 
9

スポンサーリンク