diff options
-rw-r--r-- | Doc/c-api/arg.rst | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Doc/c-api/arg.rst b/Doc/c-api/arg.rst index 1ea9e9a..2525438 100644 --- a/Doc/c-api/arg.rst +++ b/Doc/c-api/arg.rst @@ -32,7 +32,7 @@ variable(s) whose address should be passed. converted to C strings using the default encoding. If this conversion fails, a :exc:`UnicodeError` is raised. -``s#`` (string, Unicode or any read buffer compatible object) [const char \*, int] +``s#`` (string, Unicode or any read buffer compatible object) [const char \*, int (or :ctype:`Py_ssize_t`, see below)] This variant on ``s`` stores into two C variables, the first one a pointer to a character string, the second one its length. In this case the Python string may contain embedded null bytes. Unicode objects pass back a pointer to the default @@ -40,6 +40,11 @@ variable(s) whose address should be passed. other read-buffer compatible objects pass back a reference to the raw internal data representation. + Starting with Python 2.5 the type of the length argument can be + controlled by defining the macro :cmacro:`PY_SSIZE_T_CLEAN` before + including :file:`Python.h`. If the macro is defined, length is a + :ctype:`Py_ssize_t` rather than an int. + ``s*`` (string, Unicode, or any buffer compatible object) [Py_buffer \*] Similar to ``s#``, this code fills a Py_buffer structure provided by the caller. The buffer gets locked, so that the caller can subsequently use the buffer even |