Issue 1577: shutil.move() where destination is a directory was doing a
[python.git] / Doc / c-api / objbuffer.rst
blob7d66db2f0231ab47254934301f50293676766d52
1 .. highlightlang:: c
3 .. _abstract-buffer:
5 Buffer Protocol
6 ===============
9 .. cfunction:: int PyObject_AsCharBuffer(PyObject *obj, const char **buffer, Py_ssize_t *buffer_len)
11    Returns a pointer to a read-only memory location usable as character-based
12    input.  The *obj* argument must support the single-segment character buffer
13    interface.  On success, returns ``0``, sets *buffer* to the memory location and
14    *buffer_len* to the buffer length.  Returns ``-1`` and sets a :exc:`TypeError`
15    on error.
17    .. versionadded:: 1.6
20 .. cfunction:: int PyObject_AsReadBuffer(PyObject *obj, const void **buffer, Py_ssize_t *buffer_len)
22    Returns a pointer to a read-only memory location containing arbitrary data.  The
23    *obj* argument must support the single-segment readable buffer interface.  On
24    success, returns ``0``, sets *buffer* to the memory location and *buffer_len* to
25    the buffer length.  Returns ``-1`` and sets a :exc:`TypeError` on error.
27    .. versionadded:: 1.6
30 .. cfunction:: int PyObject_CheckReadBuffer(PyObject *o)
32    Returns ``1`` if *o* supports the single-segment readable buffer interface.
33    Otherwise returns ``0``.
35    .. versionadded:: 2.2
38 .. cfunction:: int PyObject_AsWriteBuffer(PyObject *obj, void **buffer, Py_ssize_t *buffer_len)
40    Returns a pointer to a writeable memory location.  The *obj* argument must
41    support the single-segment, character buffer interface.  On success, returns
42    ``0``, sets *buffer* to the memory location and *buffer_len* to the buffer
43    length.  Returns ``-1`` and sets a :exc:`TypeError` on error.
45    .. versionadded:: 1.6