wcsrtombs - convierte una cadena de caracteres anchos a una cadena multibyte
Biblioteca Estándar C (
libc,
-lc)
#include <wchar.h>
size_t wcsrtombs(char dest[restrict .len], const wchar_t **restrict src,
size_t len, mbstate_t *restrict ps);
Si
dest no es un puntero NULL, la función
wcsrtombs()
convierte la cadena de caracteres anchos
*src en una cadena multibyte
comenzando en
dest. En
dest se escriben, como mucho,
len
bytes. El estado de cambios
*ps se acualiza. La conversión se
realiza de forma efectiva llamando repetidamente a
wcrtomb(dest, *src,
ps), tantas veces como la llamada sea efectiva e incrementando
dest
con el número de bytes escritos y
*src en uno. La
conversión puede pararse por tres razones:
- •
- 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, *src se deja apuntando
al carácter ancho inválido, se devuelve
(size_t) -1 y errno toma el valor EILSEQ.
- •
- El límite de longitud fuerza la parada. En este
caso, *src se deja apuntando al siguiente carácter ancho
para convertir y devuelve el número de bytes escritos en
dest.
- •
- The wide-character string has been completely converted,
including the terminating null wide character (L'\0'), which has the side
effect of bringing back *ps to the initial state. In this case,
*src is set to NULL, and the number of bytes written to
dest, excluding the terminating null byte ('\0'), is returned.
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.
En los dos casos anteriores, si
ps es un puntero NULL se usa en su lugar
un estado estático anónimo sólo conocido por la
función
wcsrtombs().
El programador tiene que asegurarse de que hay espacio para al menos
len
bytes en
dest.
La función
wcsrtombs() 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 y
errno toma el valor
EILSEQ.
Para obtener una explicación de los términos usados en esta
sección, véase
attributes(7).
Interfaz |
Atributo |
Valor |
wcsrtombs() |
Seguridad del hilo |
MT-Carrera insegura:wcsrtombs/!ps |
POSIX.1-2001, POSIX.1-2008, C99.
El comportamiento de
wcsrtombs() depende de la categoría
LC_CTYPE de la localización actual.
Pasar NULL como valor de
ps no es seguro en un entorno multihilos.
iconv(3),
mbsinit(3),
wcrtomb(3),
wcsnrtombs(3),
wcstombs(3)
La traducción al español de esta página del manual fue
creada por Pedro Pablo Fábrega <
[email protected]> y Juan
Piernas <
[email protected]>
Esta traducción es documentación libre; lea la
GNU
General Public License Version 3 o posterior con respecto a las
condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.
Si encuentra algún error en la traducción de esta página
del manual, envíe un correo electrónico a
[email protected]