낡은 버퍼 프로토콜

버전 3.0부터 폐지됨.

이 함수는 파이썬 2에서 “낡은 버퍼 프로토콜” API 일부분이었습니다. 파이썬 3에서는 이 프로토콜이 더는 존재하지 않지만 2.x 코드 이식을 쉽게 하도록 함수들은 여전히 노출됩니다. 이들은 새 버퍼 프로토콜를 둘러싼 호환성 래퍼 역할을 하지만, 버퍼를 제공할 때 얻은 자원의 수명을 제어할 수는 없습니다.

따라서, PyObject_GetBuffer()(또는 y*w* 포맷 코드를 사용하는 PyArg_ParseTuple() 계열의 함수)를 호출하여 개체에 대한 버퍼 뷰를 가져오고, 버퍼 뷰를 해제할 수 있을 때 PyBuffer_Release()를 호출하는 것이 좋습니다.

int PyObject_AsCharBuffer(PyObject *obj, const char **buffer, Py_ssize_t *buffer_len)
Part of the Stable ABI.

문자 기반 입력으로 사용할 수 있는 읽기 전용 메모리 위치에 대한 포인터를 반환합니다. obj 인자는 단일 세그먼트 문자 버퍼 인터페이스를 지원해야 합니다. 성공하면, 0을 반환하고, buffer를 메모리 위치로 설정하고, buffer_len을 버퍼 길이로 설정합니다. 에러 시에, -1을 반환하고, TypeError를 설정합니다.

int PyObject_AsReadBuffer(PyObject *obj, const void **buffer, Py_ssize_t *buffer_len)
Part of the Stable ABI.

임의의 데이터를 포함하는 읽기 전용 메모리 위치에 대한 포인터를 반환합니다. obj 인자는 단일 세그먼트 읽기 가능 버퍼 인터페이스를 지원해야 합니다. 성공하면, 0을 반환하고, buffer를 메모리 위치로 설정하고, buffer_len을 버퍼 길이로 설정합니다. 에러 시에, -1을 반환하고, TypeError를 설정합니다.

int PyObject_CheckReadBuffer(PyObject *o)
Part of the Stable ABI.

o가 단일 세그먼트 읽기 가능 버퍼 인터페이스를 지원하면 1을 반환합니다. 그렇지 않으면, 0을 반환합니다. 이 함수는 항상 성공합니다.

이 함수는 버퍼를 가져오고 해제하려고 하며, 해당 함수를 호출하는 동안 발생하는 예외는 억제됨에 유의하십시오. 에러 보고를 받으려면 대신 PyObject_GetBuffer()를 사용하십시오.

int PyObject_AsWriteBuffer(PyObject *obj, void **buffer, Py_ssize_t *buffer_len)
Part of the Stable ABI.

쓰기 가능한 메모리 위치에 대한 포인터를 반환합니다. obj 인자는 단일 세그먼트, 문자 버퍼 인터페이스를 지원해야 합니다. 성공하면, 0을 반환하고, buffer를 메모리 위치로 설정하고, buffer_len을 버퍼 길이로 설정합니다. 에러 시에, -1을 반환하고, TypeError를 설정합니다.