man7.org > Linux > man-pages

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | CONFORMING TO | NOTES | SEE ALSO | COLOPHONThe Linux Programming Interface

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

NAME         top

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

SYNOPSIS         top

       #include <wchar.h>

       size_t mbsrtowcs(wchar_t *dest, const char **src,
                         size_t len, mbstate_t *ps);

DESCRIPTION         top

       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 null wide character ('\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 null wide 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 known only to the mbsrtowcs() function is used
       instead.

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

RETURN VALUE         top

       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.

CONFORMING TO         top

       C99.

NOTES         top

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

       Passing NULL as ps is not multithread safe.

SEE ALSO         top

       iconv(3), mbsnrtowcs(3), mbstowcs(3)

COLOPHON         top

       This page is part of release 3.51 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                              2011-09-28                     MBSRTOWCS(3)

Copyright and license for this page

HTML rendering created 2013-05-17 by Michael Kerrisk, author of The Linux Programming Interface, maintainer of the Linux man-pages project

Hosting by jambit GmbH

free hit counters