Si
dest
n'est pas un pointeur NULL, la fonction
wcstombs()
convertit au maximum
nwc
caractères larges depuis la chaîne
*src
vers la séquence multi-octets située en
dest.
Au plus
n
octets seront écrits dans
dest.
La conversion débute dans l'état initial.
La conversion peut se terminer pour trois raisons :
1. Un caractère large que l'on ne peut pas représenter par une séquence
multi-octets (dans la localisation en cours) a été rencontré.
Dans ce cas la fonction renverra
(size_t) -1.
2. La limite de longueur force l'arrêt.
Dans ce cas, le nombre d'octets écrits dans
dest
est renvoyé, mais l'état de décalage est perdu.
3. La chaîne de caractères larges a été complètement convertie,
y compris le L'\0' final.
Dans ce cas la conversion se termine dans l'état initial.
La fonction renvoie le nombre d'octets écrits dans
dest,
sans compter l'octet '\0'.
Si
dest
est NULL, la longueur
n
est ignorée,
et la conversion se déroule comme précédemment,
sauf que les octets convertis ne sont pas écrits en mémoire,
et qu'il n'y a pas de limite de longueur en destination.
Pour éviter le cas 2 ci-dessus, le programmeur doit s'assurer que
n
est supérieur ou égal à
wcstombs(NULL,src,0)+1.