diff options
author | Jeroen Ruigrok van der Werven <asmodai@in-nomine.org> | 2009-04-25 20:40:10 +0000 |
---|---|---|
committer | Jeroen Ruigrok van der Werven <asmodai@in-nomine.org> | 2009-04-25 20:40:10 +0000 |
commit | a4c03abb9e1753931f2f8fc296733dd31b7c375d (patch) | |
tree | 8a94ae0e5313bc751fd26cf7156f61e7aca776f4 | |
parent | 9e03cee97cc7c9ff168b579ccea06f69e4777aa9 (diff) | |
download | cpython-git-a4c03abb9e1753931f2f8fc296733dd31b7c375d.tar.gz |
Reformat prior to editing.
-rw-r--r-- | Doc/c-api/marshal.rst | 66 |
1 files changed, 34 insertions, 32 deletions
diff --git a/Doc/c-api/marshal.rst b/Doc/c-api/marshal.rst index 4df628829b..5ecccc41d8 100644 --- a/Doc/c-api/marshal.rst +++ b/Doc/c-api/marshal.rst @@ -5,25 +5,26 @@ Data marshalling support ======================== -These routines allow C code to work with serialized objects using the same data -format as the :mod:`marshal` module. There are functions to write data into the -serialization format, and additional functions that can be used to read the data -back. Files used to store marshalled data must be opened in binary mode. +These routines allow C code to work with serialized objects using the same +data format as the :mod:`marshal` module. There are functions to write data +into the serialization format, and additional functions that can be used to +read the data back. Files used to store marshalled data must be opened in +binary mode. Numeric values are stored with the least significant byte first. -The module supports two versions of the data format: version 0 is the historical -version, version 1 (new in Python 2.4) shares interned strings in the file, and -upon unmarshalling. Version 2 (new in Python 2.5) uses a binary format for -floating point numbers. -*Py_MARSHAL_VERSION* indicates the current file format (currently 2). +The module supports two versions of the data format: version 0 is the +historical version, version 1 (new in Python 2.4) shares interned strings in +the file, and upon unmarshalling. Version 2 (new in Python 2.5) uses a binary +format for floating point numbers. *Py_MARSHAL_VERSION* indicates the current +file format (currently 2). .. cfunction:: void PyMarshal_WriteLongToFile(long value, FILE *file, int version) - Marshal a :ctype:`long` integer, *value*, to *file*. This will only write the - least-significant 32 bits of *value*; regardless of the size of the native - :ctype:`long` type. + Marshal a :ctype:`long` integer, *value*, to *file*. This will only write + the least-significant 32 bits of *value*; regardless of the size of the + native :ctype:`long` type. .. versionchanged:: 2.4 *version* indicates the file format. @@ -48,24 +49,24 @@ floating point numbers. The following functions allow marshalled values to be read back in. XXX What about error detection? It appears that reading past the end of the -file will always result in a negative numeric value (where that's relevant), but -it's not clear that negative values won't be handled properly when there's no -error. What's the right way to tell? Should only non-negative values be written -using these routines? +file will always result in a negative numeric value (where that's relevant), +but it's not clear that negative values won't be handled properly when there's +no error. What's the right way to tell? Should only non-negative values be +written using these routines? .. cfunction:: long PyMarshal_ReadLongFromFile(FILE *file) - Return a C :ctype:`long` from the data stream in a :ctype:`FILE\*` opened for - reading. Only a 32-bit value can be read in using this function, regardless of - the native size of :ctype:`long`. + Return a C :ctype:`long` from the data stream in a :ctype:`FILE\*` opened + for reading. Only a 32-bit value can be read in using this function, + regardless of the native size of :ctype:`long`. .. cfunction:: int PyMarshal_ReadShortFromFile(FILE *file) - Return a C :ctype:`short` from the data stream in a :ctype:`FILE\*` opened for - reading. Only a 16-bit value can be read in using this function, regardless of - the native size of :ctype:`short`. + Return a C :ctype:`short` from the data stream in a :ctype:`FILE\*` opened + for reading. Only a 16-bit value can be read in using this function, + regardless of the native size of :ctype:`short`. .. cfunction:: PyObject* PyMarshal_ReadObjectFromFile(FILE *file) @@ -78,17 +79,18 @@ using these routines? .. cfunction:: PyObject* PyMarshal_ReadLastObjectFromFile(FILE *file) Return a Python object from the data stream in a :ctype:`FILE\*` opened for - reading. Unlike :cfunc:`PyMarshal_ReadObjectFromFile`, this function assumes - that no further objects will be read from the file, allowing it to aggressively - load file data into memory so that the de-serialization can operate from data in - memory rather than reading a byte at a time from the file. Only use these - variant if you are certain that you won't be reading anything else from the - file. On error, sets the appropriate exception (:exc:`EOFError` or - :exc:`TypeError`) and returns *NULL*. + reading. Unlike :cfunc:`PyMarshal_ReadObjectFromFile`, this function + assumes that no further objects will be read from the file, allowing it to + aggressively load file data into memory so that the de-serialization can + operate from data in memory rather than reading a byte at a time from the + file. Only use these variant if you are certain that you won't be reading + anything else from the file. On error, sets the appropriate exception + (:exc:`EOFError` or :exc:`TypeError`) and returns *NULL*. .. cfunction:: PyObject* PyMarshal_ReadObjectFromString(char *string, Py_ssize_t len) - Return a Python object from the data stream in a character buffer containing - *len* bytes pointed to by *string*. On error, sets the appropriate exception - (:exc:`EOFError` or :exc:`TypeError`) and returns *NULL*. + Return a Python object from the data stream in a character buffer + containing *len* bytes pointed to by *string*. On error, sets the + appropriate exception (:exc:`EOFError` or :exc:`TypeError`) and returns + *NULL*. |