Использование struct timeval в Python
У меня есть программа на 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 ответа
Решение
Найти определение struct timeval
в C-файлах вашей платформы (интернет предлагает 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)]
вероятно, будет отвечать всем требованиям.
Без какой-либо дополнительной информации, это будет определение timeval:
class timeval(Structure):
_fields_ = [("tv_sec",c_long),
("tv_usec", c_long)]
class S(Structure):
_fields_ = [("x",c_int),
("t", timeval)]