How to Call a C function in Python

Published on Aug. 22, 2023, 12:15 p.m.

To call a C function in Python , you can use the ctypes (foreign function library) module in Python. ctypes allows you to load shared libraries (i.e., .dll, .so, or .dylib files) that contain the C functions and call them directly from Python.

Here is an example of how to call a C function add_two_numbers that adds two integers in a shared library my_library.dll using ctypes:

from ctypes import cdll

# Load the shared library
libmy_library = cdll.LoadLibrary('./my_library.dll')

# Declare the argument and result types of the C function
libmy_library.add_two_numbers.argtypes = (ctypes.c_int, ctypes.c_int)
libmy_library.add_two_numbers.restype = ctypes.c_int

# Call the C function and print the result
result = libmy_library.add_two_numbers(3, 5)
print(result)

In this example, we use the cdll function from ctypes to load a shared library my_library.dll that contains the add_two_numbers function. We then declare the argument and result types of the function using the argtypes and restype attributes. Finally, we call the C function and print the result.

Note that ctypes provides other functions to load shared libraries, such as windll for Windows DLLs and osx and libc for macOS and Linux system libraries, respectively.

Tags:

related content