在Python中使用struct timeval

时间:2012-04-11 14:27:34

标签: python ctypes timeval

我有一个包含结构的C程序

struct S{
           int x;
           struct timeval t;
 };

和一个功能

int func(struct S s1, struct S s2)

我需要从我的python程序中调用这个函数。 我正在使用ctypes.Python上的并行结构

import ctypes
from ctypes import *
class S(Structure):
        _fields_ = [("x",c_int),
                     ("t", ?)]

现在,我的问题是我会写什么?地点和与之相关的任何依赖项。 提前致谢。

2 个答案:

答案 0 :(得分:4)

在平台的C包含文件中找到struct timeval的定义(Internet建议sys/time.h),然后将其转码为ctypes结构。

在我的平台上,struct timeval

struct timeval {
  long tv_sec;
  long tv_usec;
};

(我想这也是标准),所以

class timeval(Structure):
    _fields_ = [("tv_sec", c_long), ("tv_usec", c_long)]

class S(Structure):
    _fields_ = [("x",c_int), ("t", timeval)]

可能适合该法案。

答案 1 :(得分:1)

没有任何进一步的信息,它将是timeval

的定义
class timeval(Structure):
    _fields_ = [("tv_sec",c_long),
                 ("tv_usec", c_long)]

class S(Structure):
    _fields_ = [("x",c_int),
                 ("t", timeval)]