Si
dest
n'est pas un pointeur
NULL,
la fonction
mbstowcs()
convertit la chaîne multi-octets
src
en chaîne de caractères larges
dest.
Elle écrira au plus
n
caractères larges dans
dest.
L'état de conversion est initialisé.
La conversion peut s'arrêter pour l'une des trois raisons suivantes :
- 1.
-
Une séquence multi-octets invalide a été rencontrée.
Dans ce cas, elle renvoie
(size_t) -1.
- 2.
-
n
caractères larges non-nuls ont été stockés dans
dest.
Dans ce cas, le nombre de caractères écrits dans
dest
est renvoyé, mais l'état de décalage en ce point est perdu.
- 3.
-
La chaîne multi-octets a été complètement convertie,
y compris l'octet nul final.
Dans ce cas, le nombre de caractères larges écrits dans
dest,
sans compter l'octet nul final, est renvoyé.
Le programmeur doit s'assurer qu'il y a assez de place pour au moins
n
caractères larges dans
dest.
Si
dest
est
NULL,
n
est ignoré, et la conversion se présente comme au-dessus,
excepté que les caractères larges ne sont pas écrits en mémoire
et qu'aucune limite de longueur n'existe.
Afin d'éviter la situation numéro 2 ci-dessus,
le programmeur doit s'assurer que
n
est supérieur ou égal a
mbstowcs(NULL,src,0)+1.