ctype and functions that return a pointer to a structure
Lenard Lindstrom
len-l at telus.net
Sun Jul 1 16:37:34 EDT 2007
hg wrote:
> Hi,
>
> I have the following code:
> ******************************************
> from ctypes import *
> g_lib = cdll.LoadLibrary("libc.so.6")
> class Struct_Password(Structure):
> """
>
> """
> _fields_ = [ ('name', c_char_p),
> ('code', c_char_p),
> ('date', c_long),
> ('min', c_long),
> ('max', c_long),
> ('warn', c_long),
> ('inact', c_long),
> ('expire', c_long),
> ('flag', c_ulong)
> ]
> l_res = g_lib.getspnam('john')
> l_struct = cast(l_res, POINTER( Struct_Password() ) )
l_struct = cast(l_res, POINTER( Struct_Password ) )
POINTER wants a ctypes type as an argument. Struct_Password() is a
Structure instance.
A better way to do it is define the return type for getspnam:
g_lib.getspnam.restype = POINTER( Struct_Password )
Now the function returns a structure pointer so the cast is unnecessary.
---
Lenard Lindstrom
<len-l at telus.net>
More information about the Python-list
mailing list