Section: Manual del Programador Linux (3)
Updated: 25 julio 1999
Index Return to Main
Contents
wcrtomb - convierte una carácter ancho a un secuencia multibyte
#include <wchar.h> size_t wcrtomb (char *s, wchar_t wc, mbstate_t *ps);
El caso principal de esta función es cuando s no es NULL y wc no es L'\0'. En este caso, la función wcrtomb convierte el carácter ancho wc a su representación multibyte y lo guarda al principio de la cadena de caracteres apuntada por s. Actualiza el estado de cambios *ps, y devuelve la longitud de la susodicha representación multibyte, o sea, el número de bytes escritos en s.
Un caso diferente es cuando s no es NULL pero wc es L'\0'. En ese caso, la función wcrtomb guarda en la cadena de caracteres apuntada por s la secuencia de cambios necesaria para devolver *ps a su estado inicial, seguido por un byte '\0'. Actualiza el estado de cambios *ps (es decir, lo devuelve al estado inicial) y devuelve la longitud de la secuencia de cambios más uno, es decir, el número de bytes escritos en s.
Un tercer caso es cuando s es NULL. En este caso wc se ignora, y la función devuelve efectivamente wcrtomb(buf,L'\0',ps) donde buf es un buffer anónimo interno.
En todos los casos anteriores, si ps es un puntero NULL, se usa en su lugar un estado estático anónimo sólo conocido por la función wcrtomb.
La función wcrtomb devuelve el número de bytes que han sido o serían escritos en el array de bytes s. Si wc no se puede representar como un secuencia multibyte (de acuerdo a la localización actual), devuelve (size_t)(-1) y errno se pone con el valor EILSEQ.
El comportamiento de wcrtomb depende de la categoría LC_CTYPE de la localización actual.
Pasar NULL como ps no es seguro en entornos multihilo.
This document was created by man2html, using
the manual pages.
Time: 06:16:22 GMT, January 22, 2005