1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" References consulted:
.\" GNU glibc-2 source code and manual
.\" Dinkumware C library reference http://www.dinkumware.com/
.\" OpenGroup's Single Unix specification http://www.UNIX-systems.org/online.html
.\" ISO/IEC 9899:1999
.\"
.\" Translated Sun Apr 23 2000 by Juan Piernas <piernas@ditec.um.es>
.\" Traducción revisada por Miguel Pérez Ibars <mpi79470@alu.um.es> el 29-marzo-2005
.\"
.TH MBSINIT 3 "20 noviembre 2000" "GNU" "Manual del Programador de Linux"
.SH NOMBRE
mbsinit \- comprueba el estado inicial de cambios
.SH SINOPSIS
.nf
.B #include <wchar.h>
.sp
.BI "int mbsinit (const mbstate_t *" ps );
.fi
.SH 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
\fBmbstate_t\fP. 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.
.PP
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 \fBmbsrtowcs\fP, y el que usan las
funciones de conversión de carácter ancho a multibyte, tal como
\fBwcsrtombs\fP, aunque ambos encajan en un \fBmbstate_t\fP, y ambos poseen
la misma representación para un estado inicial.
.PP
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 \fBmbrtowc\fP sí
producen estados no-iniciales cuando son interrumpidas a mitad de un carácter.
.PP
Una forma posible de crear un mbstate_t en un estado inicial es asignarle un
cero:
.nf
mbstate_t state;
memset(&state,0,sizeof(mbstate_t));
.fi
En Linux, lo siguiente también funciona, aunque podría producir advertencias
del compilador:
.nf
mbstate_t state = { 0 };
.fi
.PP
La función \fBmbsinit\fP comprueba si \fI*ps\fP se corresponde con un estado
inicial.
.SH "VALOR DEVUELTO"
\fBmbsinit\fP devuelve un valor distinto de cero si \fI*ps\fP se encuentra
en un estado inicial o si \fIps\fP es un puntero nulo. En otro caso,
devuelve 0.
.SH "CONFORME A"
ISO/ANSI C, UNIX98
.SH "VÉASE TAMBIÉN"
.BR mbsrtowcs "(3), " wcsrtombs (3)
.SH OBSERVACIONES
El comportamiento de \fBmbsinit\fP depende de la categoría LC_CTYPE de la
localización actual.
|