Python에서 C 함수 호출
ctypes 모듈을 사용하여 Python 프로그램에서 C 함수를 호출할 수 있습니다.
Python에서 C 함수 호출
여기에는 다음 단계가 포함됩니다.
- 필요한 기능이 있는 C 파일(.c 확장자) 만들기
- C 컴파일러를 사용하여 공유 라이브러리 파일(.so 확장자) 생성
- Python 프로그램에서 공유 파일로부터 ctypes.CDLL 인스턴스를 생성합니다.
- 마지막으로
{CDLL_instance}.{function_name}({function_parameters})
형식을 사용하여 C 함수를 호출합니다.
1단계: 몇 가지 기능이 있는 C 파일 만들기
#include <stdio.h>
int square(int i) {
return i * i;
}
정수의 제곱을 반환하는 간단한 C 함수가 있습니다. 이 함수 코드를 my_functions.c라는 파일에 저장했습니다.
2단계: 공유 라이브러리 파일 생성
다음 명령을 사용하여 C 소스 파일에서 공유 라이브러리 파일을 만들 수 있습니다.
$ cc -fPIC -shared -o my_functions.so my_functions.c
3단계: Python 프로그램에서 C 함수 호출
>>> from ctypes import *
>>> so_file = "/Users/pankaj/my_functions.so"
>>> my_functions = CDLL(so_file)
>>>
>>> print(type(my_functions))
<class 'ctypes.CDLL'>
>>>
>>> print(my_functions.square(10))
100
>>> print(my_functions.square(8))
64
>>>
C 프로그램 파일을 변경하면 공유 라이브러리 파일을 재생성해야 합니다.
결론
Python 기본 구현은 C 프로그래밍으로 작성되며 CPython이라고 합니다. 따라서 파이썬 프로그램에서 C 함수를 사용하는 것은 그리 드문 일이 아닙니다. 이 튜토리얼에서는 Python 프로그램에서 C 함수를 쉽게 호출하는 방법을 배웠습니다.