웹사이트 검색

Python에서 C 함수 호출


ctypes 모듈을 사용하여 Python 프로그램에서 C 함수를 호출할 수 있습니다.

Python에서 C 함수 호출

여기에는 다음 단계가 포함됩니다.

  1. 필요한 기능이 있는 C 파일(.c 확장자) 만들기
  2. C 컴파일러를 사용하여 공유 라이브러리 파일(.so 확장자) 생성
  3. Python 프로그램에서 공유 파일로부터 ctypes.CDLL 인스턴스를 생성합니다.
  4. 마지막으로 {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 함수를 쉽게 호출하는 방법을 배웠습니다.