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

NAME

6       wcrtomb - convert a wide character to a multibyte sequence
7

SYNOPSIS

9       #include <wchar.h>
10
11       size_t wcrtomb(char *s, wchar_t wc, mbstate_t *ps);
12

DESCRIPTION

14       The  main  case  for  this function is when s is not NULL and wc is not
15       L'\0'.  In this case, the wcrtomb() function converts the wide  charac‐
16       ter  wc  to its multibyte representation and stores it at the beginning
17       of the character array pointed to by s.  It  updates  the  shift  state
18       *ps,  and returns the length of said multibyte representation, that is,
19       the number of bytes written at s.
20
21       A different case is when s is not NULL but wc is L'\0'.  In  this  case
22       the  wcrtomb()  function  stores at the character array pointed to by s
23       the shift sequence needed to bring *ps back to the initial state,  fol‐
24       lowed  by a '\0' byte.  It updates the shift state *ps (i.e., brings it
25       into the initial state), and returns the length of the  shift  sequence
26       plus one, that is, the number of bytes written at s.
27
28       A  third  case  is when s is NULL.  In this case wc is ignored, and the
29       function effectively returns  wcrtomb(buf,L'\0',ps)  where  buf  is  an
30       internal anonymous buffer.
31
32       In  all of the above cases, if ps is a NULL pointer, a static anonymous
33       state only known to the wcrtomb() function is used instead.
34

RETURN VALUE

36       The wcrtomb() function returns the number of bytes that  have  been  or
37       would  have been written to the byte array at s.  If wc can not be rep‐
38       resented as a multibyte sequence (according  to  the  current  locale),
39       (size_t) -1 is returned, and errno set to EILSEQ.
40

CONFORMING TO

42       C99.
43

NOTES

45       The  behavior of wcrtomb() depends on the LC_CTYPE category of the cur‐
46       rent locale.
47
48       Passing NULL as ps is not multithread safe.
49

SEE ALSO

51       wcsrtombs(3)
52

COLOPHON

54       This page is part of release 3.25 of the Linux  man-pages  project.   A
55       description  of  the project, and information about reporting bugs, can
56       be found at http://www.kernel.org/doc/man-pages/.
57
58
59
60GNU                               1999-07-25                        WCRTOMB(3)
Impressum