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

假设我有可变长度参数列表的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()函数作为唯一的小麻烦.所以 – 总而言之,这比我更容易;但是我觉得用fa_args提高fxxx的可能性仍然是一样的.

最佳答案 假设你可以绑定
libc printf function,这是va_args使用的一个很好的例子,我想你将能够创建任何函数的绑定.

点赞