ctypes from_param() truncating 64 bit pointers to 32 bit
joakim.hove at gmail.com
Fri Feb 18 09:46:44 CET 2011
Thanks for answering;
> I rarely use ctypes
You should :-) Apart from my current struggle I think ctypes is really
> and I actually don't know how this specific case works.
> However, you are not providing a function signature for the "print_addr" C
> function in the BugTest case, so my guess is that it assumes the standard
> signature for C functions, which is "int func(int)". That would explain the
> 32bit truncation.
Well; I think you are wrong. First of all because what I showed in the
Stackoverflow post was just a contrived example - the real code where
the problem initially arose does indeed have the proper function
signature. Secondly: <Uncertain>The use function signatures will be
relevant for C-C linkage, but ctypes library only relates to the fully
linked shared librarry lib.so where these signatures have been long
lost anyway; that is why we have to specify the argtypes and restype
attributes of the ctypes function objects?</Uncertain>.
More information about the Python-list