Passing a packed C structure to a c module

Philippe Martin pmartin at snakecard.com
Fri Apr 14 17:17:20 EDT 2006


I misslead you: it is a smart card-style ioctl ...

Philippe



"Martin v. Löwis" wrote:

> Philippe Martin wrote:
>> The call actually is an IOCtl: depending on the control code, the
>> structure has a different format.
> 
> Ah. In that case, I recommend to use the ioctl module; you won't need a
> C wrapper, then.
> 
>> Although the number of control codes/structures is finite, it would make
>> the wrapper function fairly large.
> 
> *Some* code to handle this will be very large, regardless of how you
> write it.
> 
>> You seem to think that building the structure from python would be a
>> mistake: why is that ?
> 
> It's very error-prone. You have to match the C structure layout of the
> compiler precisely, and you even have to get the alignment right,
> something that can't be done reliably in Python.
> 
>> PS: the wrapper also has to work under multiple OSs
> 
> That makes it worse: now you not only have to match the C compiler's
> expectation on a single processor, but on different ones.
> 
> Perhaps you should be using ctypes.
> 
> Regards,
> Martin




More information about the Python-list mailing list