Scroll to navigation

MBSNRTOWCS(3) Manual del Programador de Linux MBSNRTOWCS(3)

NOMBRE

mbsnrtowcs - convierte una cadena multibyte a una cadena de caracteres anchos

SINOPSIS

#include <wchar.h>
size_t mbsnrtowcs(wchar_t *dest, const char **src,
                  size_t nms, size_t len, mbstate_t *ps);

Requisitos de Macros de Prueba de Características para glibc (véase feature_test_macros(7)):

mbsnrtowcs():

_POSIX_C_SOURCE >= 200809L
_GNU_SOURCE

DESCRIPCIÓN

La función mbsnrtowcs() es como la función mbsrtowcs(3), salvo que el número de bytes a convertir, comenzando en *src, está limitado a nms.

Si dest no es un NULL, la función mbsnrtowcs() convierte, como máximo, nms bytes de la cadena multibyte *src a una cadena de caracteres anchos que comienza en dest. A lo sumo, se escriben len caracteres anchos en dest. El estado de cambios *ps se actualiza. La conversión se realiza en realidad llamando repetidamente a mbrtowc(Idest, *src, n, ps), donde n es algún número positivo tal que esta llamada tenga éxito, e incrementa a continuación dest en uno y *src en el número de bytes consumidos. La conversión se puede detener por tres motivos:

1.
Se ha encontrado una secuencia multibyte inválida. En este caso se deja *src apuntando a la secuencia multibyte inválida, la función devuelve (size_t) -1 y se asigna a errno el valor EILSEQ.
2.
The nms limit forces a stop, or len non-L'\0' wide characters have been stored at dest. In this case, *src is left pointing to the next multibyte sequence to be converted, and the number of wide characters written to dest is returned.
3.
The multibyte string has been completely converted, including the terminating null wide character ('\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 wide characters written to dest, excluding the terminating null wide character, is returned.

According to POSIX.1, if the input buffer ends with an incomplete character, it is unspecified whether conversion stops at the end of the previous character (if any), or at the end of the input buffer. The glibc implementation adopts the former behavior.

Si dest es NULL, se ignora len, y la conversión procede como antes, salvo que los caracteres anchos obtenidos no se escriben en memoria y que no existe límite de longitud en el destino.

En los dos casos anteriores, si ps es un puntero NULL, en su lugar se usa un estado anónimo privado, sólo conocido por la función mbsnrtowcs().

Los programadores deben garantizar que hay espacio suficiente en dest para, al menos, len caracteres anchos.

VALOR DEVUELTO

The mbsnrtowcs() function returns the number of wide characters that make up the converted part of the wide-character string, not including the terminating null wide character. If an invalid multibyte sequence was encountered, (size_t) -1 is returned, and errno set to EILSEQ.

ATRIBUTOS

Para obtener una explicación de los términos usados en esta sección, véase attributes(7).

Interfaz Atributo Valor
mbsnrtowcs() Seguridad del hilo MT-Unsafe race:mbsnrtowcs/!ps

CONFORME A

POSIX.1-2008.

NOTAS

El comportamiento de mbsnrtowcs() 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.

VÉASE TAMBIÉN

iconv(3), mbrtowc(3), mbsinit(3), mbsrtowcs(3)

COLOFÓN

Esta página es parte de la versión 5.10 del proyecto Linux man-pages. Puede encontrar una descripción del proyecto, información sobre cómo informar errores y la última versión de esta página en https://www.kernel.org/doc/man-pages/.

TRADUCCIÓN

La traducción al español de esta página del manual fue creada por Juan Piernas <piernas@ditec.um.es> y Marcos Fouces <marcos@debian.org>

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 debian-l10n-spanish@lists.debian.org.

9 Junio 2020 GNU