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.