舊緩沖協(xié)議?
3.0 版后已移除.
這些函數是 Python 2 中“舊緩沖協(xié)議”API 的組成部分。 在 Python 3 中,此協(xié)議已不復存在,但這些函數仍然被公開(kāi)以便移植 2.x 的代碼。 它們被用作 新緩沖協(xié)議 的兼容性包裝器,但它們并不會(huì )在緩沖被導出時(shí)向你提供對所獲資源的生命周期控制。
因此,推薦你調用 PyObject_GetBuffer()
(或者配合 PyArg_ParseTuple()
函數族使用 y*
或 w*
格式碼) 來(lái)獲取一個(gè)對象的緩沖視圖,并在緩沖視圖可被釋放時(shí)調用 PyBuffer_Release()
。
-
int PyObject_AsCharBuffer(PyObject *obj, const char **buffer, Py_ssize_t *buffer_len)?
- Part of the Stable ABI.
返回一個(gè)指向可用作基于字符的輸入的只讀內存地址的指針。 obj 參數必須支持單段字符緩沖接口。 成功時(shí)返回
0
,將 buffer 設為內存地址并將 buffer_len 設為緩沖區長(cháng)度。 出錯時(shí)返回-1
并設置一個(gè)TypeError
。
-
int PyObject_AsReadBuffer(PyObject *obj, const void **buffer, Py_ssize_t *buffer_len)?
- Part of the Stable ABI.
返回一個(gè)指向包含任意數據的只讀內存地址的指針。 obj 參數必須支持單段可讀緩沖接口。 成功時(shí)返回
0
,將 buffer 設為內存地址并將 buffer_len 設為緩沖區長(cháng)度。 出錯時(shí)返回-1
并設置一個(gè)TypeError
。
-
int PyObject_CheckReadBuffer(PyObject *o)?
- Part of the Stable ABI.
如果 o 支持單段可讀緩沖接口則返回
1
。 否則返回0
。 此函數總是會(huì )成功執行。請注意此函數會(huì )嘗試獲取并釋放一個(gè)緩沖區,并且在調用對應函數期間發(fā)生的異常會(huì )被屏蔽。 要獲取錯誤報告則應改用
PyObject_GetBuffer()
。
-
int PyObject_AsWriteBuffer(PyObject *obj, void **buffer, Py_ssize_t *buffer_len)?
- Part of the Stable ABI.
返回一個(gè)指向可寫(xiě)內存地址的指針。 obj 必須支持單段字符緩沖接口。 成功時(shí)返回
0
,將 buffer 設為內存地址并將 buffer_len 設為緩沖區長(cháng)度。 出錯時(shí)返回-1
并設置一個(gè)TypeError
。