Provided by:
manpages-fr_1.67.0-1_all 
NOM
iconv - Conversion de caractères larges.
SYNOPSIS
#include <iconv.h>
size_t iconv (iconv_t cd,
char ** inbuf, size_t * inbytesleft,
char ** outbuf, size_t * outbytesleft);
DESCRIPTION
L’argument cd doit être un descripteur de conversion fourni par la
fonction iconv_open.
L’utilisation principale de cette routine est avec inbuf non NULL et
*inbuf non NULL. Dans ce cas, iconv convertit la séquence multi-octets
débutant en *inbuf en une séquence multi-octets commençant en *outbuf.
Au plus *inbytesleft octets seront lus, en partant de *inbuf. Au plus
*outbytesleft octets seront écrits en commençant en *outbuf.
La fonction iconv convertit un caractère multi-octets à la fois, et
pour chaque conversion elle augmente *inbuf et diminue *inbytesleft du
nombre d’octets d’entrée convertis, et elle augmente *outbuf et diminue
*outbytesleft du nombre d’octets de sortie écrits. Elle met à jour
l’état de conversion contenu au sein de cd. La conversion peut
s’arrêter pour quatre raisons :
1. Une séquence multi-octets invalide a été trouvée en entrée. Dans ce
cas la fonction renvoie (size_t)(-1) après avoir mis EILSEQ dans errno.
Ensuite *inbuf pointera sur le début de la séquence multi-octets
invalide.
2. La séquence d’entrée a été convertie entièrement, c’est à dire que
*inbytesleft est descendu jusqu’à zéro. Dans ce cas iconv renvoie le
nombre de conversions irréversibles réalisées durant l’appel.
3. Une séquence multi-octets incomplète a été trouvée alors que la
séquence d’entrée se terminait. Dans ce cas la fonction renvoie
(size_t)(-1) après avoir mis EINVAL dans errno. Ensuite *inbuf
pointera sur le début de la séquence multi-octets incomplète.
4. Le buffer de sortie n’a plus de place pour stocker le prochain
caractère converti. Dans ce cas errno contiendra E2BIG et la fonction
renverra (size_t)(-1).
Une autre possibilité se présente quand inbuf ou *inbuf sont NULL, mais
ni outbuf, ni *outbuf ne sont NULL. Dans ce cas la fonction iconv
essaye de mettre l’état de conversion de cd dans l’état initial, et de
mémoriser la séquence de décalage correspondante dans *outbuf. Au
maximum *outbytesleft octets seront écrits en commençant en *outbuf.
Si le buffer de sortie ne contient pas assez de place pour
réinitialiser la séquence, la fonction renvoie (size_t)(-1) après avoir
mis E2BIG dans errno. Sinon elle augmente *outbuf et dimininue
*outbytesleft du nombre d’octets écrits.
Un troisième cas est possible, si inbuf ou *inbuf sont NULL, et outbuf
ou *outbuf sont NULL. Alors, la fonction iconv replace cd dans l’état
de conversion initial.
VALEUR RENVOYÉE
La fonction iconv renvoie le nombre de caractères convertis de manière
irréversible durant l’appel. Les conversions réversibles ne sont pas
prises en compte. En cas d’erreur la fonction remplit errno et renvoie
(size_t)(-1).
ERREURS
Les erreurs suivantes peuvent se produire, entre autres :
E2BIG Il n’y a pas assez de place dans *outbuf.
EILSEQ Une séquence multi-octets invalide a été trouvée en entrée.
EINVAL Une séquence multi-octets incomplète a été trouvée en entrée.
CONFORMITÉ
UNIX98
VOIR AUSSI
iconv_open(3), iconv_close(3)
TRADUCTION
Christophe Blaess, 2000-2003.