낡은 버퍼 프로토콜¶
버전 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)¶ 문자 기반 입력으로 사용할 수 있는 읽기 전용 메모리 위치에 대한 포인터를 반환합니다. obj 인자는 단일 세그먼트 문자 버퍼 인터페이스를 지원해야 합니다. 성공하면,
0
을 반환하고, buffer를 메모리 위치로 설정하고, buffer_len을 버퍼 길이로 설정합니다. 에러 시에,-1
을 반환하고,TypeError
를 설정합니다.
-
int
PyObject_AsReadBuffer
(PyObject *obj, const void **buffer, Py_ssize_t *buffer_len)¶ 임의의 데이터를 포함하는 읽기 전용 메모리 위치에 대한 포인터를 반환합니다. obj 인자는 단일 세그먼트 읽기 가능 버퍼 인터페이스를 지원해야 합니다. 성공하면,
0
을 반환하고, buffer를 메모리 위치로 설정하고, buffer_len을 버퍼 길이로 설정합니다. 에러 시에,-1
을 반환하고,TypeError
를 설정합니다.
-
int
PyObject_CheckReadBuffer
(PyObject *o)¶ o가 단일 세그먼트 읽기 가능 버퍼 인터페이스를 지원하면
1
을 반환합니다. 그렇지 않으면,0
을 반환합니다. 이 함수는 항상 성공합니다.이 함수는 버퍼를 가져오고 해제하려고 하며, 해당 함수를 호출하는 동안 발생하는 예외는 억제됨에 유의하십시오. 에러 보고를 받으려면 대신
PyObject_GetBuffer()
를 사용하십시오.
-
int
PyObject_AsWriteBuffer
(PyObject *obj, void **buffer, Py_ssize_t *buffer_len)¶ 쓰기 가능한 메모리 위치에 대한 포인터를 반환합니다. obj 인자는 단일 세그먼트, 문자 버퍼 인터페이스를 지원해야 합니다. 성공하면,
0
을 반환하고, buffer를 메모리 위치로 설정하고, buffer_len을 버퍼 길이로 설정합니다. 에러 시에,-1
을 반환하고,TypeError
를 설정합니다.