From 71a755383d7a94bb1b937b9895b8ae613ecd325c Mon Sep 17 00:00:00 2001 From: Patrick Rauscher Date: Sun, 31 May 2026 09:20:49 +0200 Subject: [PATCH] gh-117291: Explain usage of null bytes in Array(c_char).value (GH-117292) (cherry picked from commit 73d8e9a47cc13ce1b9b1bdfdeaa958639b144f55) Co-authored-by: Patrick Rauscher --- Doc/library/multiprocessing.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst index 7b17df08f7dc712..2d13053915830b0 100644 --- a/Doc/library/multiprocessing.rst +++ b/Doc/library/multiprocessing.rst @@ -1723,7 +1723,10 @@ inherited by child processes. Note that *lock* is a keyword only argument. Note that an array of :data:`ctypes.c_char` has *value* and *raw* - attributes which allow one to use it to store and retrieve strings. + attributes which can both be used to store and retrieve byte strings. + While *raw* allows interaction with a :class:`bytes` object the full size of + the array, reading *value* will terminate after a null byte, like most + programming languages handle strings. The :mod:`!multiprocessing.sharedctypes` module