mbrtowc(3C)mbrtowc(3C)NAMEmbrtowc() - convert a character to a wide-character code (restartable)
SYNOPSISDESCRIPTION
If s is a null pointer, the function is equivalent to the call:
In this case, the values of the arguments pwc and n are ignored.
If s is not a null pointer, the function inspects at most n bytes
beginning at the byte pointed to by s to determine the number of bytes
needed to complete the next character (including any shift sequences).
If the function determines that the next character is completed, it
determines the value of the corresponding wide-character and then, if
pwc is not a null pointer, stores that value in the object pointed to
by pwc. If the corresponding wide-character is the null wide-charac‐
ter, the resulting state described is the initial conversion state.
If ps is a null pointer, the function uses its own internal mbstate_t
object, which is initialized at program startup to the initial conver‐
sion state. Otherwise, the mbstate_t object pointed to by ps is used
to completely describe the current conversion state of the associated
character sequence.
APPLICATION USAGE
The prototype of this function is available to applications if they
are:
a. conformant.
b. Compiled with macro with a value >=500.
c. Compiled with macro with a value >= 200112.
EXTERNAL INFLUENCES
Environment Variables
The behavior of this function is affected by the category of the cur‐
rent locale.
RETURN VALUE
The function returns the first of the following that applies:
0 If the next n or fewer bytes complete the character
that corresponds to the null wide-character (which
is the value stored).
Positive If the next n or fewer bytes complete a valid char‐
acter (which is the value stored); the value
returned is the number of bytes that complete the
character.
(size_t)-2 If the next n bytes contribute to an incomplete but
potentially valid character, and all n bytes have
been processed (no value is stored). When n has at
least the value of the macro, this case can only
occur if s points at a sequence of redundant shift
sequences (for implementations with state-dependent
encodings).
(size_t)-1 If an encoding error occurs, in which case the next
n or fewer bytes do not contribute to a complete and
valid character (no value is stored). In this case,
is stored in and the conversion state is undefined.
ERRORS
The function may fail if:
Invalid character sequence is detected.
ps points to an object that contains an invalid conver‐
sion state.
WARNINGS
With the exception of ASCII characters, the code values of wide charac‐
ters (type of are specific to the effective locale specified by the
environment variable. These values may not be compatible with values
obtained by specifying other locales that are supported now, or which
may be supported in the future. It is recommended that wide character
constants and wide string literals (see the not be used, and that wide
character code values not be stored in files or devices because future
standards may dictate changes in the code value assignments of the wide
characters. However, wide character constants and wide string literals
corresponding to the characters of the ASCII code set can be safely
used since their values are guaranteed to be the same as their ASCII
code set values.
AUTHOR
was developed by HP and Mitsubishi Electric Corporation.
SEE ALSOmbsinit(3C), glossary(9).
mbrtowc(3C)