size_t
wcrtomb(
char * restrict s
, wchar_t wc
, mbstate_t * restrict ps
)
)
converts the wide character given by
wc
to the corresponding multibyte character, and stores it in the array
pointed to by
s
unless
s
is a null pointer.
This function will modify the first at most
MB_CUR_MAX
bytes of the array pointed to by
s
.
The behaviour of
wcrtomb()
is affected by the
LC_CTYPE
category of the current locale.
These are the special cases:
)
stores a nul byte preceded by special byte sequence (if any)
to return to an initial state in the array pointed to by
s
,
and the state object pointed to by
ps
also returns to an initial state.
)
just places
ps
into an initial state.
It is equivalent to the following call:
wcrtomb(buf, L'\0', ps);
Here,
buf
is a dummy buffer.
In this case,
wc
is ignored.
)
uses its own internal state object to keep the conversion state,
instead of
ps
mentioned in this manual page.
Calling any other functions in
Standard C Library (libc, -lc)
never changes the internal
state of
mbrtowc(),
which is initialized at startup time of the program.
)
returns:
wc
is not a valid wide character.
In this case,
wcrtomb(
)
also sets
errno
to indicate the error.
)
may cause an error in the following case:
EILSEQ
]
wc
is not a valid wide character.
EINVAL
]
ps
points to an invalid or uninitialized mbstate_t object.
)
function conforms to
ISO/IEC 9899/AMD1:1990 (``ISO C90'') .
The restrict qualifier is added at
ISO/IEC 9899:1999 (``ISO C99'') .