SeouliteLab

파이썬으로 C 코드와 상호작용하기: cffi 라이브러리 활용 방법 본문

카테고리 없음

파이썬으로 C 코드와 상호작용하기: cffi 라이브러리 활용 방법

Seoulite Lab 2024. 4. 16. 08:46

cffi는 파이썬에서 C 코드와의 상호작용을 가능하게 하는 라이브러리입니다. 이를 통해 파이썬에서 C 코드를 호출하고, C 함수를 호출하여 빠른 연산이 필요한 작업을 수행할 수 있습니다. cffi는 CPython 및 PyPy와 호환되며, C 확장 모듈을 작성하거나 외부 라이브러리에 바인딩을 만들 때 유용합니다. 아래는 cffi의 주요 기능과 사용법을 살펴보겠습니다.

기능 1: C 함수 호출

cffi를 사용하면 파이썬에서 C 함수를 직접 호출할 수 있습니다. 이를 통해 C로 작성된 코드를 활용하여 파이썬에서 빠른 작업을 수행할 수 있습니다.

예제 1: C 함수 호출하기

from cffi import FFI

ffi = FFI()
ffi.cdef("""
    int add(int a, int b);
""")
lib = ffi.dlopen("./mylib.so")

result = lib.add(3, 4)
print("결과:", result)

기능 2: C 코드 호출

cffi를 사용하여 파이썬에서 C 코드를 호출할 수 있습니다. 이를 통해 C 코드를 파이썬 모듈처럼 사용할 수 있습니다.

예제 2: C 코드 호출하기

from cffi import FFI

ffi = FFI()
with open("mylib.h", "r") as f:
    ffi.cdef(f.read())
lib = ffi.dlopen("./mylib.so")

result = lib.add(3, 4)
print("결과:", result)

기능 3: 외부 라이브러리에 바인딩 생성

cffi를 사용하여 외부 C 라이브러리에 파이썬 바인딩을 생성할 수 있습니다. 이를 통해 파이썬에서 C 라이브러리를 편리하게 활용할 수 있습니다.

예제 3: 외부 라이브러리에 바인딩 생성하기

from cffi import FFI

ffi = FFI()
ffi.cdef("""
    int my_function(int arg);
""")
lib = ffi.dlopen("external_lib.so")

result = lib.my_function(42)
print("결과:", result)