NOMBRE¶
wcstombs - convierte una cadena de caracteres anchos a una cadena mulibyte
SYNOPSIS¶
#include <stdlib.h>
size_t wcstombs (char *dest, const wchar_t *src, size_t n);
DESCRIPCIÓN¶
Si
dest no es un puntero NULL, la función
wcstombs convierte
la cadena de caracteres anchos
*src en una cadena multibyte comenzando
en
dest. En
dest se escriben, como mucho,
n bytes. El
estado de cambios
*ps se acualiza. La conversión comienza en el
estado inicial. La conversión puede pararse por tres razones:
1. Se ha encontrado un carácter ancho que no se puede representar como una
secuencia multibyte (de acuerdo con la localización actual). En este caso
se devuelve (size_t)(-1).
2. El límite de longitud fuerza la parada. En este caso, devuelve el
número de bytes escritos en
dest pero el estado de cambios en este
punto se pierde.
3. Se ha completado la conversión de la cadena de caracteres anchos,
incluyendo la terminación L'\0'. En este caso, la conversión termina
en el estado inicial. Devuelve el número de bytes escritos en
dest, excluyendo el byte terminador '\0'.
El programador tiene que asegurarse de que hay espacio para al menos
n
bytes en
dest.
Si
dest es NULL,
len se ignora, y la conversión procede como
arriba, salvo que los bytes convertidos no se escriben en memoria y no existe
límite de longitud.
Para evitar los dos casos anteriores, el programador debería estar seguro
de que
n es mayor o igual a
wcstombs(NULL,src,0)+1.
VALOR DEVUELTO¶
la función
wcstombs devuelve el número de bytes que conforman
la parte de la secuencia multibyte convertida, sin incluir el byte nulo
terminador. Si encontró un carácter ancho que no pudo convertir,
devuelve (size_t)(-1).
ISO/ANSI C, UNIX98
VÉASE TAMBIÉN¶
wcsrtombs(3)
OBSERVACIONES¶
El comportamiento de
wcstombs depende de la categoría LC_CTYPE de la
localización actual.
La función
wcsrtombs proporciona un interfaz seguro para hilos con
la misma funcionalidad.