WCRTOMB   (3) manpage
WCRTOMB
3
1999-07-25
GNU
Linux Programmer's Manual
  • 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 number 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
      represented 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
  • NOTES
      The behaviour of wcrtomb depends on the LC_CTYPE category of the
      current locale.



      Passing NULL as ps is not multi-thread safe.
Current Users: 17 © 1999-2006 Linux.com.hk PenguinSoft
All trademarks and copyrights on this page are owned by their respective companies. Linux is a trademark of Linus Torvalds.