【发布时间】:2011-05-23 10:48:16
【问题描述】:
假设我有带有可变长度参数列表的 C 函数:
int some_func(int arg1 , ... );
是否可以(简单?)使用 ctypes 从 python 调用此函数?
更新:
实施了 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( ) 函数是唯一的小麻烦。所以 - 总而言之,这比我更容易;但是我猜想用 va_args fxxx up 的可能性是一样的。
【问题讨论】: