MBTOWC(3C) Standard C Library Functions MBTOWC(3C)
NAME
mbtowc, mbtowc_l - convert a character to a wide-character code
SYNOPSIS
#include <stdlib.h>
int mbtowc(
wchar_t *restrict pwc,
const char *restrict s,
size_t n);
#include <stdlib.h>
#include <xlocale.h>
int mbtowc_l(
wchar_t *restrict pwc,
const char *restrict s,
size_t n,
locale_t loc);
DESCRIPTION
If
s is not a null pointer,
mbtowc() determines the number of the
bytes that constitute the character pointed to by
s. It then
determines the wide-character code for the value of type
wchar_t that
corresponds to that character. (The value of the wide-character code
corresponding to the null byte is 0.) If the character is valid and
pwc is not a null pointer,
mbtowc() stores the wide-character code in
the object pointed to by
pwc.
A call with
s as a null pointer causes this function to return
0.
The behavior of this function is affected by the
LC_CTYPE category of
the current locale. At most
n bytes of the array pointed to by
s will
be examined.
The function
mbtowc_l() behaves identically to
mbtowc(), except
instead of using the current locale, it uses the locale as specified
by
loc.
RETURN VALUES
If
s is a null pointer, these functions return
0. If
s is not a null
pointer, they return
0 (if
s points to the null byte), the number of
bytes that constitute the converted character (if the next
n or fewer
bytes form a valid character), or
-1 and may set
errno to indicate
the error (if they do not form a valid character).
In no case will the value returned be greater than
n or the value of
the
MB_CUR_MAX macro.
ERRORS
The
mbtowc() and
mbtowc_l() functions may fail if:
EILSEQ Invalid character sequence is detected.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|CSI | Enabled |
+--------------------+-----------------+
|Interface Stability | See below. |
+--------------------+-----------------+
|MT-Level | MT-Safe |
+--------------------+-----------------+
The
mbtowc() function is Standard. The
mbtowc_l() function is
Uncommitted.
SEE ALSO
mblen(3C),
mbstowcs(3C),
newlocale(3C),
setlocale(3C),
uselocale(3C),
wcstombs(3C),
wctomb(3C),
attributes(7),
standards(7) June 23, 2014 MBTOWC(3C)