python

linux python脚本 如何与C语言交互

小樊
81
2024-11-29 19:59:04
栏目: 编程语言

在Linux环境下,要让Python脚本与C语言代码进行交互,你可以使用Python的ctypes库或者cffi

  1. 使用ctypes库:

首先,你需要编译一个C语言库。假设你有一个名为example.c的文件,内容如下:

#include <stdio.h>

int add(int a, int b) {
    return a + b;
}

使用以下命令编译这个文件:

gcc -shared -o libexample.so example.c

这将生成一个名为libexample.so的共享库文件。

接下来,创建一个名为example_wrapper.py的Python脚本,内容如下:

import ctypes

# 加载共享库
libexample = ctypes.CDLL('./libexample.so')

# 设置函数参数类型
libexample.add.argtypes = [ctypes.c_int, ctypes.c_int]

# 设置函数返回值类型
libexample.add.restype = ctypes.c_int

# 调用C语言函数
a = 3
b = 4
result = libexample.add(a, b)
print(f"{a} + {b} = {result}")

运行这个Python脚本,你将看到输出结果:

3 + 4 = 7
  1. 使用cffi库:

首先,安装cffi库:

pip install cffi

接下来,创建一个名为example_wrapper.py的Python脚本,内容如下:

from cffi import FFI

# 定义C语言函数签名
ffi = FFI()
ffi.cdef("int add(int a, int b);")

# 加载共享库
libexample = ffi.dlopen('./libexample.so')

# 调用C语言函数
a = 3
b = 4
result = libexample.add(a, b)
print(f"{a} + {b} = {result}")

运行这个Python脚本,你将看到输出结果:

3 + 4 = 7

这两种方法都可以让Python脚本与C语言代码进行交互。你可以根据自己的需求和喜好选择合适的方法。

0
看了该问题的人还看了