- mylib.c // 파이썬에서 이용할 C함수
int sum(int i, int j)
{
return i+j;
}
int mul(int i, int j)
{
return i * j;
}
- C코드를 컴파일 하고 파이썬에서 공유하기 위한 libmylib.so파일 생성
$ gcc -c -fPIC mylib.c // 일단 c코드를 컴파일
$ gcc -shared mylib.o -o libmylib.so // c obj파일을 파이썬 라이브러리(libmylib.so)로 변환
- test_libmylib.py // 파이썬 라이브러리를 이용하기 위한 파이썬 코드
from ctypes import cdll // ctypes is a foreign function library for Python
import os
mylib = cdll.LoadLibrary('%s/libmylib.so'%os.getcwd()) // 현재 디렉토리에 있는 libmylib.so를 가르킴
print(mylib.sum(1,2))
print(mylib.mul(1,2))
- 실행결과
- 표준 라이브러리에서 사용가능한 C구조의 클래스를 파이썬에서 정의
from ctypes import *
import os
class coordinate(Structure):
_fields_ = [ ("x", c_int),
("y", c_int) ]
point = coordinate(10, 20)
print('('+str(point.x)+','+str(point.y)+')')
- 실행결과