Старый протокол буферов
Устарело с версии 3.0.
Эти функции входили в API «старого протокола буферов» в Python 2. В Python 3 этого протокола больше нет, однако функции по-прежнему доступны для упрощения переноса кода с версии 2.x. Они служат оболочкой совместимости для нового протокола буферов, но не позволяют управлять временем жизни ресурсов, полученных при экспорте буфера.
Поэтому рекомендуется вызывать PyObject_GetBuffer() (или использовать коды формата y* или w* из семейства функций кодов формата PyArg_ParseTuple()), чтобы получить представление буфера объекта, а затем вызывать PyBuffer_Release(), когда представление буфера можно освободить.
-
int PyObject_AsCharBuffer(PyObject *obj, const char **buffer, Py_ssize_t *buffer_len) -
Часть стабильного ABI.
Возвращает указатель на доступную только для чтения область памяти, которую можно использовать для ввода символьных данных. Аргумент obj должен поддерживать интерфейс символьного буфера из одного сегмента. В случае успеха возвращает
0, устанавливает для buffer адрес области памяти, а для buffer_len — длину буфера. В случае ошибки возвращает-1и устанавливает исключениеTypeError.
-
int PyObject_AsReadBuffer(PyObject *obj, const void **buffer, Py_ssize_t *buffer_len) -
Часть стабильного ABI.
Возвращает указатель на доступную только для чтения область памяти, содержащую произвольные данные. Аргумент obj должен поддерживать интерфейс читаемого буфера из одного сегмента. В случае успеха возвращает
0, устанавливает для buffer адрес области памяти, а для buffer_len — длину буфера. В случае ошибки возвращает-1и устанавливает исключениеTypeError.
-
int PyObject_CheckReadBuffer(PyObject *o) -
Часть стабильного ABI.
Возвращает
1, если o поддерживает интерфейс читаемого буфера из одного сегмента. В противном случае возвращает0. Эта функция всегда завершается успешно.Обратите внимание, что эта функция пытается получить и освободить буфер, а исключения, возникающие при вызове соответствующих функций, подавляются. Чтобы получать сообщения об ошибках, используйте вместо неё
PyObject_GetBuffer().
-
int PyObject_AsWriteBuffer(PyObject *obj, void **buffer, Py_ssize_t *buffer_len) -
Часть стабильного ABI.
Возвращает указатель на доступную для записи область памяти. Аргумент obj должен поддерживать интерфейс символьного буфера из одного сегмента. В случае успеха возвращает
0, устанавливает для buffer адрес области памяти, а для buffer_len — длину буфера. В случае ошибки возвращает-1и устанавливает исключениеTypeError.
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/c-api/objbuffer.html