Previous: wcstombs, Up: Stdlib


2.51 wctomb—minimal wide char to multibyte converter

Synopsis

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

Description
When _MB_CAPABLE is not defined, this is a minimal ANSI-conforming implementation of wctomb. The only “wide characters” recognized are single bytes, and they are “converted” to themselves.

When _MB_CAPABLE is defined, this routine calls _wctomb_r to perform the conversion, passing a state variable to allow state dependent decoding. The result is based on the locale setting which may be restricted to a defined set of locales.

Each call to wctomb modifies *s unless s is a null pointer or _MB_CAPABLE is defined and wchar is invalid.


Returns
This implementation of wctomb returns 0 if s is NULL; it returns -1 if _MB_CAPABLE is enabled and the wchar is not a valid multi-byte character, it returns 1 if _MB_CAPABLE is not defined or the wchar is in reality a single byte character, otherwise it returns the number of bytes in the multi-byte character.

Portability
wctomb is required in the ANSI C standard. However, the precise effects vary with the locale.

wctomb requires no supporting OS subroutines.