Si
s
n'est pas un pointeur
NULL,
la fonction
mblen()
inspecte au plus
n
octets de la chaîne commençant à l'adresse
s
et extrait le caractère multi-octets suivant.
Elle utilise un état de décalage statique et anonyme,
uniquement connu de la routine
mblen().
Si le caractère multi-octets n'est pas le caractère large nul,
elle renvoie le nombre d'octes consommés dans
s.
Si c'est le caractère large nul, elle renvoie 0.
Si les
n
octets commençant à l'adresse
s
ne contiennent pas un caractère multi-octets complet,
mblen()
renvoie -1. Ceci peut arriver même si
n
est supérieur à
MB_CUR_MAX,
si la chaîne multi-octets contient
des séquences de décalages redondantes.
Si la chaîne multi-octets commençant en
s
contient une séquence invalide avant le prochain caractère complet,
mblen()
renvoie aussi -1.
Si
s
est un pointeur
NULL,
la fonction
mblen()
reinitialise l'état de décalage (connue d'elle seule),
et renvoie une valeur non nulle si le codage a un état de décalage
non trivial, ou zéro si le codage est sans état.