I have a C program containing a structure
struct S{
           int x;
           struct timeval t;
 };
and a function
int func(struct S s1, struct S s2)
I need to call this function from my python program. I am using ctypes.The parallel structure on Python
import ctypes
from ctypes import *
class S(Structure):
        _fields_ = [("x",c_int),
                     ("t", ?)]
Now, my question is what will I write in the ? place and any dependencies related to it. Thanks in advance.
Find the definition of struct timeval in your platform's C include files (the Internet suggests sys/time.h), then transcode that into a ctypes structure.
On my platform a struct timeval is
struct timeval {
  long tv_sec;
  long tv_usec;
};
(and I suppose this is the standard anyway), so
class timeval(Structure):
    _fields_ = [("tv_sec", c_long), ("tv_usec", c_long)]
class S(Structure):
    _fields_ = [("x",c_int), ("t", timeval)]
would probably fit the bill.
without any further info, it will be the definition of timeval:
class timeval(Structure):
    _fields_ = [("tv_sec",c_long),
                 ("tv_usec", c_long)]
class S(Structure):
    _fields_ = [("x",c_int),
                 ("t", timeval)]
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With