mbrlen(3) determina el número de bytes en el siguiente carácter multibyte

SINOPSIS

#include <wchar.h>


size_t mbrlen (const char *s, size_t n, mbstate_t *ps);

DESCRIPCIÓN

La función mbrlen inspecciona, como mucho, n bytes de la cadena multibyte que comienza en s y determina el siguiente carácter multibyte completo. La función actualiza el estado de cambios *ps. Si el carácter multibyte no es el carácter ancho nulo, devuelve el número de bytes que se han consumido de s. Si el carácter multibyte es el carácter ancho nulo, restablece el estado de cambios *ps al estado inicial y devuelve 0.

Si los n bytes que comienzan en s no contienen un carácter multibyte completo, mbrlen devuelve (size_t)(-2). Esto puede ocurrir incluso si n >= MB_CUR_MAX, si la cadena multibyte contiene sequencias de cambios redundantes.

Si la cadena multibyte que comienza en s contiene una secuencia multibyte inválida antes del siguiente carácter completo, mbrlen devuelve (size_t)(-1) y asigna a errno el valor EILSEQ. En este caso, los efectos sobre *ps son indefinidos.

Si ps es un puntero NULL, en su lugar se usa un estado anónimo privado sólo conocido por la función mbrlen.

VALOR DEVUELTO

La función mbrlen devuelve el número de bytes examinados de la cadena multibyte que comienza en s, si se ha reconocido un carácter ancho no nulo. Devuelve 0 si se ha reconocido un carácter ancho nulo. Devuelve (size_t)(-1) y asigna a errno el valor EILSEQ, si se ha encontrado una secuencia multibyte inválida. Devuelve (size_t)(-2) si no ha podido recorrer una carácter multibyte completo, indicando que se debería incrementar n.

CONFORME A

ISO/ANSI C, UNIX98

OBSERVACIONES

El comportamiento de mbrlen depende de la categoría LC_CTYPE de la localización actual.