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
|
.\" 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 Tue Apr 25 2000 by Juan Piernas <piernas@ditec.um.es>
.\"
.TH MBRTOWC 3 "25 julio 1999" "GNU" "Manual del Programador de Linux"
.SH NOMBRE
mbrtowc \- convierte una secuencia multibyte a un carcter ancho
.SH SINOPSIS
.nf
.B #include <wchar.h>
.sp
.BI "size_t mbrtowc (wchar_t *" pwc ", const char *" s ", size_t " n ", mbstate_t *" ps );
.fi
.SH DESCRIPCIN
El principal caso para esta funcin se da cuando \fIs\fP no es NULL y \fIpwc\fP
no es NULL. En este caso, la funcin \fBmbrtowc\fP inspecciona, como mucho,
\fIn\fP bytes de la cadena multibyte que comienza en \fIs\fP, extrae el
siguiente carcter multibyte completo, lo convierte a un carcter ancho y lo
almacena en \fI*pwc\fP. La funcin actualiza el estado de cambios \fI*ps\fP.
Si el carcter ancho obtenido no es L'\\0', devuelve el nmero de bytes
que se han consumido de \fIs\fP. Si el carcter ancho obtenido es L'\\0',
restablece el estado de cambios \fI*ps\fP al estado inicial y devuelve 0.
.PP
Si los \fIn\fP bytes que comienzan en \fIs\fP no contienen un carcter
multibyte completo, \fBmbrtowc\fP devuelve \fI(size_t)(-2)\fP. Esto puede
ocurrir incluso si \fIn\fP >= \fIMB_CUR_MAX\fP, si la cadena multibyte
contiene secuencias de cambios redundantes.
.PP
Si la cadena multibyte que comienza en \fIs\fP contiene una secuencia
multibyte invlida antes del siguiente carcter completo, \fBmbrtowc\fP
devuelve \fI(size_t)(-1)\fP y asigna a \fBerrno\fP el valor \fBEILSEQ\fP.
En este caso, los efectos sobre \fI*ps\fP son indefinidos.
.PP
Un caso diferente se da cuando \fIs\fP no es NULL pero \fIpwc\fP es NULL. En
este caso, la funcin \fBmbrtowc\fP se comporta como antes, excepto que no
almacena el carcter ancho obtenido en memoria.
.PP
Un tercer caso se da cuando \fIs\fP es NULL. En este caso, \fIpwc\fP y
\fIn\fP se ignoran. La funcin \fBmbrtowc\fP coloca \fI*ps\fP en el estado
inicial y devuelve 0.
.PP
En todos los casos anteriores, si \fIps\fP es un puntero NULL, en su lugar se
usa un estado annimo privado slo conocido por la funcin \fBmbrtowc\fP.
.SH "VALOR DEVUELTO"
La funcin \fBmbrtowc\fP devuelve el nmero de bytes analizados de la
secuencia multibyte que comienza en \fIs\fP, si se ha reconocido un carcter
ancho distinto de L'\\0'. Devuelve 0 si se ha reconocido un carcter ancho
L'\\0'. Devuelve (size_t)(-1) y asigna a \fBerrno\fP el valor \fBEILSEQ\fP
si se ha encontrado una secuencia multibyte invlida. Devuelve (size_t)(-2)
si no se ha podido analizar un carcter multibyte completo, indicando esto
que se debera incrementar \fIn\fP.
.SH "CONFORME A"
ISO/ANSI C, UNIX98
.SH "VASE TAMBIN"
.BR mbsrtowcs (3)
.SH OBSERVACIONES
El comportamiento de \fBmbrtowc\fP depende de la categora LC_CTYPE de la
localizacin actual.
|