size_t wcstombs(char *dest, const wchar_t *src, size_t n);
If dest is not a NULL pointer, the wcstombs() function converts the
wide-character string src to a multibyte string starting at dest. At
most n bytes are written to dest. The conversion starts in the initial
state. The conversion can stop for three reasons:
1. A wide character has been encountered that can not be represented as
a multibyte sequence (according to the current locale). In this case
(size_t) -1 is returned.
2. The length limit forces a stop. In this case the number of bytes
written to dest is returned, but the shift state at this point is lost.
3. The wide-character string has been completely converted, including
the terminating null wide character (L'\0'). In this case the conver-
sion ends in the initial state. The number of bytes written to dest,
excluding the terminating null, is returned.
The programmer must ensure that there is room for at least n bytes at
If dest is NULL, n is ignored, and the conversion proceeds as above,
except that the converted bytes are not written out to memory, and that
no length limit exists.
In order to avoid the case 2 above, the programmer should make sure n
is greater or equal to wcstombs(NULL,src,0)+1.
The wcstombs() function returns the number of bytes that make up the
converted part of multibyte sequence, not including the terminating
null byte. If a wide character was encountered which could not be con-
verted, (size_t) -1 is returned.
The behavior of wcstombs() depends on the LC_CTYPE category of the cur-
The function wcsrtombs(3) provides a thread safe interface to the same
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2017
All Rights Reserved.