home   contributing   bugs   download   online pages  

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


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

NAME         top

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

SYNOPSIS         top

       #include <wchar.h>

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

DESCRIPTION         top

       If dest is not a NULL pointer, the wcsrtombs() function converts the wide-
       character string *src to a multibyte string starting at dest.  At most len
       bytes are written to dest.  The shift state *ps is updated.  The conversion is
       effectively performed by repeatedly calling wcrtomb(dest, *src, ps), as long
       as this call succeeds, and then incrementing dest by the number of bytes
       written and *src by one.  The conversion can stop for three reasons:

       1. A wide character has been encountered that can not be represented as a
       multibyte sequence (according to the current locale).  In this case *src is
       left pointing to the invalid wide character, (size_t) -1 is returned, and
       errno is set to EILSEQ.

       2. The length limit forces a stop.  In this case *src is left pointing to the
       next wide character to be converted, and the number of bytes written to dest
       is returned.

       3. The wide-character string has been completely converted, including the
       terminating L'\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 bytes
       written to dest, excluding the terminating '\0' byte, is returned.

       If dest is NULL, len is ignored, and the conversion proceeds as above, except
       that the converted bytes 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 wcsrtombs function is used instead.

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

RETURN VALUE         top

       The wcsrtombs() function returns the number of bytes that make up the
       converted part of multibyte sequence, not including the terminating null byte.
       If a wide character was encountered which could not be converted, (size_t) -1
       is returned, and errno set to EILSEQ.

CONFORMING TO         top

       C99.

NOTES         top

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

       Passing NULL as ps is not multithread safe.

SEE ALSO         top

       iconv(3), wcsnrtombs(3), wcstombs(3)

COLOPHON         top

       This page is part of release 3.32 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                                   1999-07-25                         WCSRTOMBS(3)

HTML rendering created 2010-12-03 by Michael Kerrisk, author of The Linux Programming Interface

customisable
counter