NOMBRE¶
mbsinit - comprueba el estado inicial de cambios
SINOPSIS¶
#include <wchar.h>
int mbsinit (const mbstate_t *ps);
DESCRIPCIÓN¶
La conversión de caracteres entre la representación multibyte y la
representación de caracteres anchos usa un estado de conversión,
del tipo
mbstate_t. La conversión de una cadena usa una
máquina de estados finitos. Cuando se interrumpe después de
terminar la conversión de un determinado número de caracteres,
puede necesitar salvar un estado para procesar los restantes caracteres. Tal
estado de conversión es necesario por el bien de codificaciones tales
como la ISO-2022 y la UTF-7.
El estado inicial es el estado al principio de la conversión de la
cadena. Existen dos clases de estado: el que usan las funciones de
conversión de multibyte a carácter ancho, tal como
mbsrtowcs, y el que usan las funciones de conversión de
carácter ancho a multibyte, tal como
wcsrtombs, aunque ambos
encajan en un
mbstate_t, y ambos poseen la misma representación
para un estado inicial.
Para codificaciones de 8 bits, todos los estados son equivalentes al estado
inicial. Para codificaciones multibyte como UTF-8, EUC-*, BIG5 o SJIS, las
funciones de conversión de carácter ancho a multibyte nunca
producen estados no-iniciales, pero las funciones de conversión de
multibyte a carácter ancho como
mbrtowc sí producen
estados no-iniciales cuando son interrumpidas a mitad de un carácter.
Una forma posible de crear un mbstate_t en un estado inicial es asignarle un
cero:
mbstate_t state;
memset(&state,0,sizeof(mbstate_t));
En Linux, lo siguiente también funciona, aunque podría producir
advertencias del compilador:
mbstate_t state = { 0 };
La función
mbsinit comprueba si
*ps se corresponde con un
estado inicial.
VALOR DEVUELTO¶
mbsinit devuelve un valor distinto de cero si
*ps se encuentra en
un estado inicial o si
ps es un puntero nulo. En otro caso, devuelve 0.
ISO/ANSI C, UNIX98
VÉASE TAMBIÉN¶
mbsrtowcs(3),
wcsrtombs(3)
OBSERVACIONES¶
El comportamiento de
mbsinit depende de la categoría LC_CTYPE de
la localización actual.