1MBSRTOWCS(3)               Linux Programmer's Manual              MBSRTOWCS(3)
2
3
4

NAME

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

SYNOPSIS

9       #include <wchar.h>
10
11       size_t mbsrtowcs(wchar_t *dest, const char **src,
12                         size_t len, mbstate_t *ps);
13

DESCRIPTION

15       If  dest  is  not a NULL pointer, the mbsrtowcs() function converts the
16       multibyte string *src to a wide-character string starting at dest.   At
17       most  len  wide  characters are written to dest. The shift state *ps is
18       updated. The conversion is effectively performed by repeatedly  calling
19       mbrtowc(dest,*src,n,ps)  where  n  is  some positive number, as long as
20       this call succeeds, and then incrementing dest by one and *src  by  the
21       number of bytes consumed. The conversion can stop for three reasons:
22
23       1.  An  invalid  multibyte  sequence has been encountered. In this case
24       *src is left pointing to the invalid multibyte  sequence,  (size_t)(-1)
25       is returned, and errno is set to EILSEQ.
26
27       2. len non-L'\0' wide characters have been stored at dest. In this case
28       *src is left pointing to the next multibyte sequence to  be  converted,
29       and the number of wide characters written to dest is returned.
30
31       3.  The  multibyte  string has been completely converted, including the
32       terminating '\0' (which has the side effect of bringing back *ps to the
33       initial  state).  In  this  case *src is set to NULL, and the number of
34       wide characters written to dest, excluding the terminating L'\0'  char‐
35       acter, is returned.
36
37       If  dest is NULL, len is ignored, and the conversion proceeds as above,
38       except that the converted wide characters are not written out  to  mem‐
39       ory, and that no length limit exists.
40
41       In both of the above cases, if ps is a NULL pointer, a static anonymous
42       state only known to the mbsrtowcs function is used instead.
43
44       The programmer must ensure that there is room for  at  least  len  wide
45       characters at dest.
46

RETURN VALUE

48       The  mbsrtowcs()  function  returns  the number of wide characters that
49       make up the converted part of the wide character string, not  including
50       the  terminating  null wide character. If an invalid multibyte sequence
51       was encountered, (size_t)(-1) is returned, and errno set to EILSEQ.
52

CONFORMING TO

54       C99
55

SEE ALSO

57       iconv(3), mbsnrtowcs(3), mbstowcs(3)
58

NOTES

60       The behaviour of mbsrtowcs() depends on the LC_CTYPE  category  of  the
61       current locale.
62
63       Passing NULL as ps is not multi-thread safe.
64
65
66
67GNU                               1999-07-25                      MBSRTOWCS(3)
Impressum