ABCDEFGHIJKLMNOPQRSTUVWXYZ

wcrtomb

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



NAME
       wcrtomb - convert a wide character to a multibyte sequence

SYNOPSIS
       #include <wchar.h>

       size_t wcrtomb(char *s, wchar_t wc, mbstate_t *ps);

DESCRIPTION
       The  main  case  for  this function is when s is not NULL and wc is not
       L'\0'.  In this case, the wcrtomb function converts the wide  character
       wc  to  its  multibyte representation and stores it at the beginning of
       the character array pointed to by s. It updates the  shift  state  *ps,
       and  returns the length of said multibyte representation, i.e. the num-
       ber of bytes written at s.

       A different case is when s is not NULL but wc is L'\0'.  In  this  case
       the  wcrtomb function stores at the character array pointed to by s the
       shift sequence needed to bring *ps back to the initial state,  followed
       by a '\0' byte. It updates the shift state *ps (i.e. brings it into the
       initial state), and returns the length of the shift sequence plus  one,
       i.e. the number of bytes written at s.

       A  third  case  is  when s is NULL. In this case wc is ignored, and the
       function effectively returns  wcrtomb(buf,L'\0',ps)  where  buf  is  an
       internal anonymous buffer.

       In  all of the above cases, if ps is a NULL pointer, a static anonymous
       state only known to the wcrtomb function is used instead.

RETURN VALUE
       The wcrtomb function returns the number of  bytes  that  have  been  or
       would have been written to the byte array at s. If wc can not be repre-
       sented as a multibyte  sequence  (according  to  the  current  locale),
       (size_t)(-1) is returned, and errno set to EILSEQ.

CONFORMING TO
       ISO/ANSI C, UNIX98

SEE ALSO
       wcsrtombs(3)

NOTES
       The  behaviour  of wcrtomb depends on the LC_CTYPE category of the cur-
       rent locale.

       Passing NULL as ps is not multi-thread safe.



GNU                               1999-07-25                        WCRTOMB(3)