创建ctypes绑定到具有可变参数列表的C函数
假设我有一个C语言的函数,它可以接收可变数量的参数:
int some_func(int arg1 , ... );
从Python中使用ctypes调用这个函数是否可能(简单)?
更新:
我按照cedric的建议实现了,结果效果很好:
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()这个函数。所以,总的来说,这比我想象的要简单;不过我想,使用可变参数时出错的可能性还是存在的。