| 12
 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
 73
 74
 75
 76
 77
 78
 79
 80
 
 | .\" 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
.\"
.\" Translated Tue Apr 25 2000 by Juan Piernas <piernas@ditec.um.es>
.\"
.TH MBSNRTOWCS 3  "25 julio 1999" "GNU" "Manual del Programador de Linux"
.SH NOMBRE
mbsnrtowcs \- convierte una cadena multibyte a una cadena de caracteres
anchos
.SH SINOPSIS
.nf
.B #include <wchar.h>
.sp
.BI "size_t mbsnrtowcs (wchar_t *" dest ", const char **" src ,
.BI "                   size_t " nms ", size_t " len ", mbstate_t *" ps );
.fi
.SH DESCRIPCIN
La funcin \fBmbsnrtowcs\fP es como la funcin \fBmbsrtowcs\fP, salvo que
el nmero de bytes a convertir, comenzando en \fI*src\fP, est limitado a
\fInms\fP.
.PP
Si \fIdest\fP no es un puntero NULL, la funcin \fBmbsnrtowcs\fP convierte,
como mucho, \fInms\fP bytes de la cadena multibyte \fI*src\fP a una cadena
de caracteres anchos que comienza en \fIdest\fP. Como mucho, se escriben
\fIlen\fP caracteres anchos en \fIdest\fP. El estado de cambios \fI*ps\fP se
actualiza. La conversin se realiza en realidad llamando repetidamente a
mbrtowc(\fIdest\fP,\fI*src\fP,\fIn\fP,\fIps\fP), donde \fIn\fP es algn
nmero positivo tal que esta llamada tenga xito, e incrementa a
continuacin \fIdest\fP en uno y \fI*src\fP en el nmero de bytes
consumidos. La conversin se puede detener por tres motivos:
.PP
1. Se ha encontrado una secuencia multibyte invlida. En este caso se deja
\fI*src\fP apuntando a la secuencia multibyte invlida, la funcin devuelve
(size_t)(-1) y se asigna a \fBerrno\fP el valor \fBEILSEQ\fP.
.PP
2. El lmite \fInms\fP fuerza una parada, o se han almacenado \fIlen\fP
caracteres anchos distintos de L'\\0' en \fIdest\fP. En este caso,
se deja \fI*src\fP apuntando a la siguiente secuencia multibyte a convertir
y la funcin devuelve el nmero de caracteres anchos escritos en \fIdest\fP.
.PP
3. Se ha convertido completamente la cadena multibyte, incluyendo el
carcter terminador '\\0' (que tiene el efecto colateral de devolver a
\fI*ps\fP al estado inicial). En esta caso, se asigna a \fI*src\fP un NULL y
la funcin devuelve el nmero de caracteres anchos escritos en
\fIdest\fP, excluyendo el carcter terminador L'\\0.
.PP
Si \fIdest\fP es NULL, se ignora \fIlen\fP, y la conversin procede como
antes, salvo que los caracteres anchos obtenidos no se escriben en memoria y
que no existe lmite de longitud en el destino.
.PP
En los dos casos anteriores, si \fIps\fP es un puntero NULL pointer, en su
lugar se usa un estado annimo privado, slo conocido por la funcin
\fBmbsnrtowcs\fP.
.PP
Los programadores deben garantizar que hay espacio suficiente en \fIdest\fP
para, al menos, \fIlen\fP caracteres anchos.
.SH "VALOR DEVUELTO"
La funcin \fBmbsnrtowcs\fP devuelve el nmero de caracteres anchos que
componen la parte convertida de la cadena de caracteres anchos, sin incluir
el carcter ancho terminador nulo. Si se encuentra una secuencia multibyte
invlida, la funcin devuelve (size_t)(-1) y asigna a \fBerrno\fP el valor
\fBEILSEQ\fP.
.SH "CONFORME A"
Esta funcin es una extensin de GNU.
.SH "VASE TAMBIN"
.BR mbsrtowcs "(3), " iconv (3)
.SH OBSERVACIONES
El comportamiento de \fBmbsnrtowcs\fP depende de la categora LC_CTYPE de
la localizacin actual.
.PP
Pasar NULL como valor de \fIps\fP no es seguro en un entorno multihilos.
 |