ctype and functions that return a pointer to a structure
hg
hg at nospam.org
Sun Jul 1 17:53:42 EDT 2007
Lenard Lindstrom wrote:
> 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>
Many thanks,
hg
More information about the Python-list
mailing list