mbsrtowcs - convert a multibyte string to a wide character string
        #include <wchar.h>
       size_t mbsrtowcs (wchar_t *dest, const char **src,
			 size_t len, mbstate_t *ps);
       If  dest  is  not  a  NULL pointer, the mbsrtowcs function converts the
       multibyte string *src to a wide-character string starting at dest.   At
       most  len  wide	characters are written to dest. The shift state *ps is
       updated. The conversion is effectively performed by repeatedly  calling
       mbrtowc(dest,*src,n,ps)	where  n  is  some positive number, as long as
       this call succeeds, and then incrementing dest by one and *src  by  the
       number of bytes consumed. The conversion can stop for three reasons:
       1.  An  invalid	multibyte  sequence has been encountered. In this case
       *src is left pointing to the invalid multibyte  sequence,  (size_t)(-1)
       is returned, and errno is set to EILSEQ.
       2. len non-L'\0' wide characters have been stored at dest. In this case
       *src is left pointing to the next multibyte sequence to	be  converted,
       and the number of wide characters written to dest is returned.
       3.  The	multibyte  string has been completely converted, including the
       terminating '\0' (which has the side effect of bringing back *ps to the
       initial	state).  In  this  case *src is set to NULL, and the number of
       wide characters written to dest, excluding the terminating L'\0'  character,
 is returned.
       If  dest is NULL, len is ignored, and the conversion proceeds as above,
       except that the converted wide characters are not written out  to  memory,
 and that no length limit exists.
       In both of the above cases, if ps is a NULL pointer, a static anonymous
       state only known to the mbsrtowcs function is used instead.
       The programmer must ensure that there is room for  at  least  len  wide
       characters at dest.
       The  mbsrtowcs function returns the number of wide characters that make
       up the converted part of the wide character string, not	including  the
       terminating  null  wide character. If an invalid multibyte sequence was
       encountered, (size_t)(-1) is returned, and errno set to EILSEQ.
       ISO/ANSI C, UNIX98
 
       mbstowcs(3), mbsnrtowcs(3), iconv(3)
       The behaviour of mbsrtowcs depends on the LC_CTYPE category of the current
 locale.
       Passing NULL as ps is not multi-thread safe.
GNU				  1999-07-25			  MBSRTOWCS(3)
 [ Back ] |