mirror of
https://github.com/python/cpython.git
synced 2026-01-01 04:53:46 +00:00
The problem is that ctypes c_char (and c_char_p) creates unicode string
instead of byte string. I attached a proposition (patch) to change this
behaviour (use bytes for c_char).
So in next example, it will display 'bytes' and not 'str':
from ctypes import c_buffer, c_char
buf = c_buffer("abcdef")
print (type(buf[0]))
Other behaviour changes:
- repr(c_char) adds a "b"
eg. repr(c_char('x')) is "c_char(b'x')" instead of "c_char('x')"
- bytes is mutable whereas str is not:
this may break some modules based on ctypes
|
||
|---|---|---|
| .. | ||
| darwin | ||
| libffi | ||
| libffi_arm_wince | ||
| libffi_msvc | ||
| _ctypes.c | ||
| _ctypes_test.c | ||
| _ctypes_test.h | ||
| callbacks.c | ||
| callproc.c | ||
| cfield.c | ||
| ctypes.h | ||
| ctypes_dlfcn.h | ||
| malloc_closure.c | ||
| stgdict.c | ||