6.6 バッファプロトコル (buffer protocol)

int PyObject_AsCharBuffer(PyObject *obj, const char **buffer, int *buffer_len)
文字ベースの入力として使える読み出し専用メモリ上の位置へのポインタを 返します。obj 引数は単一セグメントからなる 文字バッファインタフェースをサポートしていなければなりません。 成功すると 0を返し、buffer をメモリの位置に、 buffer_len をバッファの長さに設定します。エラーの際には -1 を返し、TypeError をセットします。 バージョン 1.6 で 新たに追加 された仕様です。

int PyObject_AsReadBuffer(PyObject *obj, const void **buffer, int *buffer_len)
任意のデータを収めた読み出し専用のメモリ上の位置へのポインタを 返します。obj 引数は単一セグメントからなる読み出し可能 バッファインタフェースをサポートしていなければなりません。 成功すると 0を返し、buffer をメモリの位置に、 buffer_len をバッファの長さに設定します。エラーの際には -1 を返し、TypeError をセットします。 バージョン 1.6 で 新たに追加 された仕様です。

int PyObject_CheckReadBuffer(PyObject *o)
o が単一セグメントからなる読み出し可能バッファインタフェース をサポートしている場合に 1 を返します。それ以外の場合には 0 を返します。 バージョン 2.2 で 新たに追加 された仕様です。

int PyObject_AsWriteBuffer(PyObject *obj, void **buffer, int *buffer_len)
書き込み可能なメモリ上の位置へのポインタを返します。obj 引数は単一セグメントからなる文字バッファインタフェース をサポートしていなければなりません。成功すると 0を返し、 buffer をメモリの位置に、 buffer_len をバッファの 長さに設定します。エラーの際には -1 を返し、 TypeError をセットします。 バージョン 1.6 で 新たに追加 された仕様です。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。