Loading

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);

       L’argument  cd  doit  être  un  descripteur de conversion fourni par la
       fonction iconv_open(3).

       Cette routine est principalement utilisée quand inbuf  et  *inbuf  sont
       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. 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 et 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, errno est définie à EILSEQ  et  la  fonction  renvoie  (size_t)-1.
       Ensuite,  *inbuf  pointera  sur  le  début  de la séquence multi-octets
       invalide.

       2. La séquence  d’entrée  multi-octets  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, errno est définie à EINVAL
       et  la  fonction  renvoie  (size_t) -1. Ensuite, *inbuf pointera sur le
       début de la séquence multi-octets incomplète.

       4. Le tampon 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 est NULL,  mais
       si  ni  outbuf, ni *outbuf ne le sont. 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  tampon  de sortie ne contient pas assez de place pour réinitialiser
       la  séquence,  errno  est  définie  à  E2BIG  et  la  fonction  renvoie
       (size_t) -1.  Sinon,  elle augmente *outbuf et diminue *outbytesleft du
       nombre d’octets écrits.

       Un troisième cas est possible, si inbuf  ou  *inbuf  est  NULL,  et  si
       outbuf  ou  *outbuf  est NULL. Dans ce cas, la fonction iconv() replace
       l’état de conversion 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.

VERSIONS

       Cette fonction est disponible dans la glibc depuis la version 2.1.

CONFORMITÉ

       POSIX.1-2001.

VOIR AUSSI

       iconv_close(3), iconv_open(3)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.23 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Florentin Duneau <fduneau@gmail.com> et l’équipe
       francophone de traduction de Debian.

       Veuillez   signaler   toute   erreur   de   traduction  en  écrivant  à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».