Man Linux: Main Page and Category List


       mbstowcs - convert a multibyte string to a wide-character string


       #include <stdlib.h>

       size_t mbstowcs(wchar_t *dest, const char *src, size_t n);


       If  dest  is  not  a NULL pointer, the mbstowcs() function converts the
       multibyte string src to a wide-character string starting at  dest.   At
       most  n  wide characters are written to dest.  The conversion starts in
       the initial state.  The conversion can stop for three reasons:

       1. An invalid multibyte sequence has been encountered.   In  this  case
          (size_t) -1 is returned.

       2. n  non-L'\0' wide characters have been stored at dest.  In this case
          the number of wide characters written to dest is returned,  but  the
          shift state at this point is lost.

       3. The  multibyte  string  has been completely converted, including the
          terminating '\0'.  In  this  case  the  number  of  wide  characters
          written  to  dest,  excluding  the  terminating  L'\0' character, is

       The programmer must ensure that there is  room  for  at  least  n  wide
       characters at dest.

       If  dest  is  NULL, n 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  order  to avoid the case 2 above, the programmer should make sure n
       is greater or equal to mbstowcs(NULL,src,0)+1.


       The mbstowcs() 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.




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

       The function mbsrtowcs(3) provides  a  better  interface  to  the  same




       This  page  is  part of release 3.24 of the Linux man-pages project.  A
       description of the project, and information about reporting  bugs,  can
       be found at