[docs] [Python-Dev] undocumented argtypes magic in ctypes?

Eli Bendersky eliben at gmail.com
Thu Mar 7 14:25:18 CET 2013


On Thu, Mar 7, 2013 at 3:37 AM, Thomas Heller <theller at ctypes.org> wrote:

> Am 06.03.2013 18:19, schrieb Eli Bendersky:
>
>>
>>
>>
>> On Wed, Mar 6, 2013 at 8:33 AM, Andrew Svetlov <andrew.svetlov at gmail.com
>> <mailto:andrew.svetlov at gmail.**com <andrew.svetlov at gmail.com>>> wrote:
>>
>>     Looks like bug for me.
>>
>>
>> ctypes seems to auto-convert arguments when argtypes is specified. This
>> fact is documented. However, I'm not sure whether this auto-conversion
>> is advanced enough to apply byref. Because otherwise, DIRENT is
>> certainly not convertible to DIRENT_p
>>
>
> If argtypes specify a 'POINTER(X)' type as an argument, then ctypes
> automatically applies byref() if an 'X' instance is passed to the
> actual call.  This is by design, but I'm not sure if it is documented
> or not.
>
> However, if argtypes is not given, this does (and of course cannot) work.
>

Great, thanks for confirming this, Thomas. I had the feeling it's a
documentation issue (hence I sent it to the docs@ list first), because the
behavior seems very deliberate and looking at the code of ctypes I did see
conversions going on.

Have I missed that this is documented somewhere, or should I open a docs
issue?

Eli
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/docs/attachments/20130307/826417ea/attachment.html>


More information about the docs mailing list