【问题标题】:Create ctypes binding to C function with variable length arg list创建 ctypes 绑定到具有可变长度 arg 列表的 C 函数
【发布时间】: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 的可能性是一样的。

【问题讨论】:

    标签: python c ctypes


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-03-01
      • 2011-11-27
      • 2019-10-28
      • 2022-09-23
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多