数据编组支持

这些例程允许C代码使用与marshal模块相同的数据格式处理序列化对象。有一些函数可以将数据写入序列化格式,以及可用于读取数据的其他函数。用于存储编组数据的文件必须以二进制模式打开.

数字值首先以最低有效字节存储.

模块支持两种版本的数据格式:版本0是历史版本,版本1共享文件中的实际字符串,以及onunmarshalling。版本2使用二进制格式表示浮点数.Py_MARSHAL_VERSION表示当前文件格式(当前为2).

void PyMarshal_WriteLongToFile long  value,FILE  *file,int  version
元帅long整数,valuefile。这只会写出value中最不重要的32位;无论大小long类型的大小。version表示文件格式.
void PyMarshal_WriteObjectToFile PyObject  *value,FILE  *file,int  version
Marshal一个Python对象,valuefile.version表示文件格式.
PyObject* PyMarshal_WriteObjectToString PyObject  *value,int  version
Return value: New reference.

返回一个包含value.version表示文件格式.

以下功能允许读回编组值.

long PyMarshal_ReadLongFromFile文件 *file
long数据流中返回一个C FILE*开放阅读。使用此函数只能读取32位值,无论long.

的原始大小如何。出错时,设置相应的异常(EOFError)并返回-1.

intPyMarshal_ReadShortFromFile文件 *file
short打开的数据流中返回一个C FILE*。无论short.

出错时,设置相应的异常(EOFError)并返回-1.

PyObject * PyMarshal_ReadObjectFromFile文件 *file
Return value: New reference.

FILE*打开forreading.

出错时,设置相应的异常(EOFError, ValueErrorTypeError)并返回NULL.

PyObject * PyMarshal_ReadLastObjectFromFile文件 *file
Return value: New reference.

FILE*打开forreading中从数据流中返回一个Python对象。与PyMarshal_ReadObjectFromFile()不同,此函数假定不会从文件中读取其他对象,允许它将文件数据反复加载到内存中,以便反序列化可以从内存中的数据进行操作,而不是一次从文件中读取一个字节。如果您确定不会从文件中读取任何其他内容,请仅使用这些变体.

如果出现错误,请设置相应的异常(EOFError, ValueErrorTypeError)并返回NULL.

PyObject * PyMarshal_ReadObjectFromString const char  *data,Py_ssize_t  len
Return value: New reference.

从中返回一个Python对象包含len指向的字节缓冲区中的数据流data.

错误时,设置相应的异常(EOFError, ValueErrorTypeError)并返回NULL.

评论被关闭。