# wctomb

## PROLOG



           This manual page is part of the POSIX Programmer's Manual.  The
           Linux implementation of this interface may differ (consult the
           corresponding Linux manual page for details of Linux behavior), or
           the interface may not be implemented on Linux.
    


## NAME



           wctomb — convert a wide-character code to a character
    


## SYNOPSIS



           #include <stdlib.h>
    
           int wctomb(char *_s_ , wchar_t _wchar_);
    


## DESCRIPTION



           The functionality described on this reference page is aligned with
           the ISO C standard. Any conflict between the requirements
           described here and the ISO C standard is unintentional. This
           volume of POSIX.1‐2017 defers to the ISO C standard.
    
           The _wctomb_() function shall determine the number of bytes needed
           to represent the character corresponding to the wide-character
           code whose value is _wchar_ (including any change in the shift
           state). It shall store the character representation (possibly
           multiple bytes and any special bytes to change shift state) in the
           array object pointed to by _s_ (if _s_ is not a null pointer). At most
           {MB_CUR_MAX} bytes shall be stored. If _wchar_ is 0, a null byte
           shall be stored, preceded by any shift sequence needed to restore
           the initial shift state, and _wctomb_() shall be left in the initial
           shift state.
    
           The behavior of this function is affected by the _LC_CTYPE_ category
           of the current locale. For a state-dependent encoding, this
           function shall be placed into its initial state by a call for
           which its character pointer argument, _s_ , is a null pointer.
           Subsequent calls with _s_ as other than a null pointer shall cause
           the internal state of the function to be altered as necessary. A
           call with _s_ as a null pointer shall cause this function to return
           a non-zero value if encodings have state dependency, and 0
           otherwise. Changing the _LC_CTYPE_ category causes the shift state
           of this function to be unspecified.
    
           The _wctomb_() function need not be thread-safe.
    
           The implementation shall behave as if no function defined in this
           volume of POSIX.1‐2017 calls _wctomb_().
    


## RETURN VALUE



           If _s_ is a null pointer, _wctomb_() shall return a non-zero or 0
           value, if character encodings, respectively, do or do not have
           state-dependent encodings. If _s_ is not a null pointer, _wctomb_()
           shall return -1 if the value of _wchar_ does not correspond to a
           valid character, or return the number of bytes that constitute the
           character corresponding to the value of _wchar_.
    
           In no case shall the value returned be greater than the value of
           the {MB_CUR_MAX} macro.
    


## ERRORS



           The _wctomb_() function shall fail if:
    
           **EILSEQ** An invalid wide-character code is detected.
    
           _The following sections are informative._
    


## EXAMPLES



           None.
    


## APPLICATION USAGE



           None.
    


## RATIONALE



           None.
    


## FUTURE DIRECTIONS



           None.
    


* * *