gpt4 book ai didi

python - 使用可变长度 arg 列表创建绑定(bind)到 C 函数的 ctypes

转载 作者:太空狗 更新时间:2023-10-29 15:39:32 24 4
gpt4 key购买 nike

假设我有一个带有可变长度参数列表的 C 函数:

int some_func(int arg1 , ... );

是否可以(简单?)使用 ctypes 从 python 调用此函数?

更新:

实现了塞德里克的建议,效果非常好:

libc = ctypes.CDLL( "/lib64/libc.so.6" , ctypes.RTLD_GLOBAL )
printf = getattr( libc , "printf")
printf("String1:%s int:%d String2:%s double:%lg\n" , "Hello" , 10 , "World" , ctypes.c_double( 3.1415 ))

ctypes.c_double( ) 函数是唯一的小问题。所以 - 总而言之,这比我更容易;但是我想 fxxx 与 va_args 的可能性保持不变。

最佳答案

假设您可以绑定(bind) libc printf function ,这是使用 va_args 的一个非常好的示例,我认为您将能够创建与任何函数的绑定(bind)。

关于python - 使用可变长度 arg 列表创建绑定(bind)到 C 函数的 ctypes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6096173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com