/* Void Main's man pages */

{ phpMan } else { main(); }

Command: man perldoc info search(apropos)  


MBRTOWC(3)                                          Linux Programmer's Manual                                         MBRTOWC(3)



NAME
       mbrtowc - convert a multibyte sequence to a wide character

SYNOPSIS
       #include <wchar.h>

       size_t mbrtowc(wchar_t *pwc, const char *s, size_t n, mbstate_t *ps);

DESCRIPTION
       The main case for this function is when s is not NULL and pwc is not NULL.  In this case, the mbrtowc() function inspects
       at most n bytes of the multibyte string starting at s, extracts the next complete multibyte character, converts it  to  a
       wide  character and stores it at *pwc.  It updates the shift state *ps.  If the converted wide character is not L'\0', it
       returns the number of bytes that were consumed from s.  If the converted wide character is L'\0',  it  resets  the  shift
       state *ps to the initial state and returns 0.

       If the n bytes starting at s do not contain a complete multibyte character, mbrtowc() returns (size_t) -2.  This can hap-
       pen even if n >= MB_CUR_MAX, if the multibyte string contains redundant shift sequences.

       If the multibyte string starting at s contains an invalid multibyte sequence before the  next  complete  character,  mbr-
       towc() returns (size_t) -1 and sets errno to EILSEQ.  In this case, the effects on *ps are undefined.

       A  different  case  is  when s is not NULL but pwc is NULL.  In this case the mbrtowc() function behaves as above, except
       that it does not store the converted wide character in memory.

       A third case is when s is NULL.  In this case, pwc and n are ignored.  If the conversion state represented by *ps denotes
       an  incomplete  multibyte  character  conversion,  the  mbrtowc() function returns (size_t) -1, sets errno to EILSEQ, and
       leaves *ps in an undefined state.  Otherwise, the mbrtowc() function puts *ps in the initial state and returns 0.

       In all of the above cases, if ps is a NULL pointer, a static anonymous state only known to the mbrtowc function  is  used
       instead.  Otherwise, *ps must be a valid mbstate_t object.  An mbstate_t object a can be initialized to the initial state
       by zeroing it, for example using

           memset(&a, 0, sizeof(a));

RETURN VALUE
       The mbrtowc() function returns the number of bytes parsed from the multibyte sequence starting at s, if a non-L'\0'  wide
       character was recognized.  It returns 0, if a L'\0' wide character was recognized.  It returns (size_t) -1 and sets errno
       to EILSEQ, if an invalid multibyte sequence was encountered.  It returns (size_t) -2 if  it  couldn't  parse  a  complete
       multibyte character, meaning that n should be increased.

CONFORMING TO
       C99.

NOTES
       The behavior of mbrtowc() depends on the LC_CTYPE category of the current locale.

SEE ALSO
       mbsrtowcs(3)

COLOPHON
       This  page  is  part of release 3.25 of the Linux man-pages project.  A description of the project, and information about
       reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.



GNU                                                        2001-11-22                                                 MBRTOWC(3)

Valid XHTML 1.0!Valid CSS!