Describes how C strings are handled in text and binary data.
In ‘C’, strings are characterised by the need for a zero terminator to
flag the end of the string. They suffer from a number of problems. In particular,
they cannot include binary data within them (in case that data includes binary
zeroes) and operations on them are, in general, inefficient. ‘C’ strings need
to be handled in a different way to binary data, as reflected in the memxxx()
and strxxx()
function
groups in the ANSI ‘C’ library.
Descriptors allow strings and binary data to be represented in the same way; this allows the same functions to be used in both cases.
For binary data, the 8 bit descriptors should be used explicitly. The distinction between Unicode and non-Unicode has no meaning for binary data
Note that there is no practical use for explicit 16 bit binary data.