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.