Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       wcsnrtombs - Convertir une chaîne de caractères larges en séquence multioctet

SYNOPSIS

       #include <wchar.h>

       size_t wcsnrtombs(char *dest, const wchar_t **src, size_t nwc,
                         size_t len, mbstate_t *ps);

   Exigences    de    macros    de   test   de   fonctionnalités   pour   la   glibc   (consultez
   feature_test_macros(7)) :

       wcsnrtombs() :
           Depuis la glibc 2.10 :
               _XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L
           Avant la glibc 2.10 :
               _GNU_SOURCE

DESCRIPTION

       La fonction  wcsnrtombs()  est  l'équivalent  de  wcsrtombs(3),  sauf  que  le  nombre  de
       caractères larges à convertir est limité (à nwc), en commençant en *src.

       Si  dest  n'est  pas  un  pointeur NULL, la fonction wcsnrtombs() convertit au maximum nwc
       caractères larges depuis la chaîne *src vers la séquence multioctet  située  en  dest.  Au
       plus  len  octets  seront  écrits  dans  dest. L'état de conversion *ps est mis à jour. La
       conversion est réalisée en fait en invoquant  à  répétition  wcrtomb(dest,*src,ps),  aussi
       longtemps  que  cet  appel  réussit,  en  augmentant à chaque fois dest du nombre d'octets
       écrits, et en incrémentant *src de 1. 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  multioctet  (dans
          la  locale  utilisée)  a  été  rencontré.  Dans  ce  cas *src pointera sur le caractère
          invalide, et la fonction renverra (size_t) -1 après avoir placé EILSEQ dans errno.

       2. On a converti nwc caractères larges sans rencontrer de caractère large nul (L'\0'),  ou
          la  limite  len  est  atteinte.  Dans  ce cas, *src pointera sur le caractère suivant à
          convertir, et la fonction renvoie le nombre d'octets écrits dans dest.

       3. La chaîne de caractères larges a été complètement convertie,  y  compris  le  caractère
          large  nul final (ramenant *ps à l'état initial). Dans ce cas, *src devient NULL, et la
          fonction renvoie le nombre d'octets écrits dans dest, sans compter l'octet nul (« \0 »)
          final.

       Si  dest  est  NULL,  la  longueur  len  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.

       Dans  tous  les  cas,  si  ps est un pointeur NULL, un état anonyme statique, réservé à la
       fonction wcsnrtombs() est utilisé à sa place.

       Le programmeur doit s'assurer qu'il y a assez de place pour au moins len octets au minimum
       dans dest.

VALEUR RENVOYÉE

       La  fonction wcsnrtombs() renvoie le nombre d'octets constituant la partie convertie de la
       séquence multioctet, sans compter l'octet nul final. Si elle rencontre un caractère  large
       qu'elle ne peut convertir, elle renvoie (size_t) -1 et place EILSEQ dans errno.

CONFORMITÉ

       POSIX.1-2008.

NOTES

       Le comportement de wcsnrtombs() dépend de la catégorie LC_CTYPE de la locale utilisée.

       L'utilisation d'un pointeur NULL pour ps n'est pas sûre dans un contexte multithread.

VOIR AUSSI

       iconv(3), mbsinit(3), wcsrtombs(3)

COLOPHON

       Cette  page  fait partie de la publication 3.65 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

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe    Blaess    <http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <http://manpagesfr.free.fr/> (2003-2006). Nicolas  François  et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

       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> ».