旧缓冲协议 — Python 文档

来自菜鸟教程
Python/docs/2.7/c-api/objbuffer
跳转至:导航、​搜索

旧缓冲协议

本节介绍了 Python 1.6 中引入的遗留缓冲区协议。 它仍然受支持,但在 Python 2.x 系列中已弃用。 Python 3 引入了一个新的缓冲区协议,它修复了协议的弱点和缺点,并已向后移植到 Python 2.6。 有关更多信息,请参阅 缓冲区和内存视图对象

int PyObject_AsCharBuffer(PyObject *obj, const char **buffer, Py_ssize_t *buffer_len)

返回一个指向可用作基于字符的输入的只读内存位置的指针。 obj 参数必须支持单段字符缓冲区接口。 成功时,返回 0,将 buffer 设置为内存位置,将 buffer_len 设置为缓冲区长度。 返回 -1 并在出错时设置 TypeError

1.6 版中的新功能。

2.5 版更改: 该函数使用 int * 类型为 buffer_len。 这可能需要更改您的代码才能正确支持 64 位系统。

int PyObject_AsReadBuffer(PyObject *obj, const void **buffer, Py_ssize_t *buffer_len)

返回一个指向包含任意数据的只读内存位置的指针。 obj 参数必须支持单段可读缓冲区接口。 成功时,返回 0,将 buffer 设置为内存位置,将 buffer_len 设置为缓冲区长度。 返回 -1 并在出错时设置 TypeError

1.6 版中的新功能。

2.5 版更改: 该函数使用 int * 类型为 buffer_len。 这可能需要更改您的代码才能正确支持 64 位系统。

int PyObject_CheckReadBuffer(PyObject *o)

如果 o 支持单段可读缓冲区接口,则返回 1。 否则返回 0

2.2 版中的新功能。

int PyObject_AsWriteBuffer(PyObject *obj, void **buffer, Py_ssize_t *buffer_len)

返回指向可写内存位置的指针。 obj 参数必须支持单段、字符缓冲区接口。 成功时,返回 0,将 buffer 设置为内存位置,将 buffer_len 设置为缓冲区长度。 返回 -1 并在出错时设置 TypeError

1.6 版中的新功能。

2.5 版更改: 该函数使用 int * 类型为 buffer_len。 这可能需要更改您的代码才能正确支持 64 位系统。