Manpage of MBTOWC
MBTOWCSection: Linux Programmer's Manual (3)
NAMEmbtowc - convert a multibyte sequence to a wide character
#include <stdlib.h>int mbtowc(wchar_t *pwc, const char *s, size_t n);
DESCRIPTIONThe main case for this function is when sis not NULL and pwcis not NULL. In this case, the mbtowc() function inspects at most nbytes of the multibyte string starting at s, extracts the complete multibyte character, converts it to a wide character and stores it at *pwc. It updates an internal shift state known only to the mbtowc() function. If sdoes not point to a null byte (aq\0aq), it returns the number of bytes that were consumed from s, otherwise it returns 0.
If the nbytes starting at sdo not contain a complete multibyte character, or if they contain an invalid multibyte sequence, mbtowc() returns -1. This can happen even if n>= MB_CUR_MAX, if the multibyte string contains redundant shift sequences.
A different case is when sis not NULL but pwcis NULL. In this case, the mbtowc() function behaves as above, except that it does not store the converted wide character in memory.
A third case is when sis NULL. In this case, pwcand nare ignored. The mbtowc() function resets the shift state, only known to this function, to the initial state, and returns nonzero if the encoding has nontrivial shift state, or zero if the encoding is stateless.
RETURN VALUEIf sis not NULL, the mbtowc() function returns the number of consumed bytes starting at s, or 0 if spoints to a null byte, or -1 upon failure.
ATTRIBUTESFor an explanation of the terms used in this section, see attributes(7).
|mbtowc()||Thread safety||MT-Unsafe race|
CONFORMING TOPOSIX.1-2001, POSIX.1-2008, C99.
NOTESThe behavior of mbtowc() depends on the LC_CTYPEcategory of the current locale.
This function is not multithread safe. The function mbrtowc(3) provides a better interface to the same functionality.
SEE ALSOMB_CUR_MAX(3), mblen(3), mbrtowc(3), mbstowcs(3), wctomb(3), wcstombs(3)
This document was created by man2html, using the manual pages.
Time: 22:27:52 GMT, June 20, 2016