- 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)+')')

 

- 실행결과

+ Recent posts