[Python-Dev] C struct for Str( ) (original) (raw)
Eddy Quicksall Eddy at Quicksall.com
Fri Jan 15 19:23:39 EST 2016
- Previous message (by thread): [Python-Dev] C struct for Str( )
- Next message (by thread): [Python-Dev] C struct for Str( )
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Sorry, I must be on the wrong list. Can you please give me the correct list?
Eddy
From: Brett Cannon [mailto:brett at python.org] Sent: Friday, January 15, 2016 6:58 PM To: Eddy Quicksall; python-dev at python.org Subject: Re: [Python-Dev] C struct for Str( )
I don't quite see what this has to do with has to do with the development of Python, Eddy. You can always reference the C API at https://docs.python.org/3/c-api/index.html . And PyBytesObject
is an instance of bytes
in Python.
On Fri, 15 Jan 2016 at 15:33 Eddy Quicksall <Eddy at quicksall.com> wrote:
I want to fill an Str() string from a C function. But I think I am using the wrong structure (PyBytesObject). I have written a C function to dump the Python class but as you can see the structure I'm using does not match the data in the class.
Can someone please tell me the correct structure:
--------- Python snip --------- class _vendorRecord_2: vendorListNumber = str() vendorNumber = str() vendorName = str('x' * 20)
vendorRecord_2 = _vendorRecord_2()
print(len(vendorRecord_2.vendorName)) print(vendorRecord_2.vendorName + '|') XBaseDump_PythonString(py_object(vendorRecord_2.vendorName))
--------- C function -------- #define MS_NO_COREDLL #undef _DEBUG #include <W:\Python-3.5.1\Include\python.h> DSI_DLL void CALL_TYPE XBaseDump_PythonString( PyBytesObject *pBytesObject ) { printf( "ob_size = %d, ob_shash = %X, ob_sval = %s\n", pBytesObject->ob_base.ob_size, pBytesObject->ob_shash, pBytesObject->ob_sval ); printf( "offsetof(ob_size) = %d, offsetof(ob_sval) = %d\n", offsetof( PyBytesObject, ob_base.ob_size ), offsetof( PyBytesObject, ob_sval ) ); printf( "sizeof(PyBytesObject) = %d\n", sizeof(PyBytesObject) ); DsmDumpBytes( pBytesObject, 32 ); }
-------- output ------------ 20 xxxxxxxxxxxxxxxxxxxx| ob_size = 20, ob_shash = 70768D53, ob_sval = σsci offsetof(ob_size) = 8, offsetof(ob_sval) = 16 sizeof(PyBytesObject) = 20 0000: 03 00 00 00 60 B0 DC 1D 14 00 00 00 53 8D 76 70 ....-........... 0016: E5 73 63 69 00 00 00 00 78 78 78 78 78 78 78 78 V...............
This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus
Python-Dev mailing list Python-Dev at python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/brett%40python.org
This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20160115/ae21b0cb/attachment.html>
- Previous message (by thread): [Python-Dev] C struct for Str( )
- Next message (by thread): [Python-Dev] C struct for Str( )
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]