Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       getpwent_r,  fgetpwent_r  - Obtenir un enregistrement du fichier passwd
       de maniere reentrante

SYNOPSIS

       #include <pwd.h>

       int getpwent_r(struct passwd *pwbuf, char *buf,
                      size_t buflen, struct passwd **pwbufp);

       int fgetpwent_r(FILE *fp, struct passwd *pwbuf, char *buf,
                       size_t buflen, struct passwd **pwbufp);

   Exigences de macros de test de fonctionnalites  pour  la  glibc  (consultez
   feature_test_macros(7)) :

       getpwent_r() : _BSD_SOURCE || _SVID_SOURCE
       fgetpwent_r() : _SVID_SOURCE

DESCRIPTION

       Les   fonctions   getpwent_r()   et  fgetpwent_r()  sont  les  versions
       reentrantes des fonctions getpwent(3) et fgetpwent(3). La premiere  lit
       l'enregistrement  passwd  suivant  a  partir  du  flux  initialise  par
       setpwent(3). La seconde lit l'enregistrement passwd suivant a partir du
       flux fp.

       La structure passwd est definie dans <pwd.h> comme ceci :

           struct passwd {
               char    *pw_name;      /* Nom d'utilisateur */
               char    *pw_passwd;    /* Mot de passe de l'utilisateur */
               uid_t    pw_uid;       /* ID de l'utilisateur */
               gid_t    pw_gid;       /* ID du groupe */
               char    *pw_gecos;     /* Nom reel */
               char    *pw_dir;       /* Repertoire personnel */
               char    *pw_shell;     /* Interpreteur de commande */
           };

       Les  fonctions  non  reentrantes  renvoient  un  pointeur  sur une zone
       statique, zone qui contient d'autres pointeurs vers le nom, le  mot  de
       passe,  le  champ  gecos,  le  repertoire  personnel  et  le  shell  de
       l'utilisateur. Les fonctions reentrantes decrites  ici  renvoient  tout
       ceci  dans  des  tampons fournis par l'appelant. Il y a tout d'abord le
       tampon pwbuf qui contient une structure passwd. Puis le tampon  buf  de
       taille  buflen qui contient les chaines supplementaires. Le resultat de
       ces fonctions, la structure passwd lue dans  le  flux,  est  enregistre
       dans  le  tampon  *pwbuf  fourni,  et  un pointeur vers cette structure
       passwd est renvoye dans *pwbufp.

VALEUR RENVOY'EE

       Si elles reussissent, ces fonctions  renvoient  0  et  *pwbufp  est  un
       pointeur  vers  la  structure  passwd. Si elles echouent, ces fonctions
       renvoient une valeur d'erreur et *pwbufp est NULL.

ERREURS

       ENOENT Plus d'entrees.

       ERANGE L'espace tampon  fourni  est  insuffisant.  Veuillez  essayer  a
              nouveau avec un tampon plus grand.

CONFORMIT'E

       Ces  fonctions  sont  des  extensions  GNU,  effectuees  dans  un style
       ressemblant a  la  version  POSIX  de  fonctions  comme  getpwnam_r(3).
       D'autres systemes utilisent le prototype

           struct passwd *
           getpwent_r(struct passwd *pwd, char *buf, int buflen);

       ou mieux,

           int
           getpwent_r(struct passwd *pwd, char *buf, int buflen,
                      FILE **pw_fp);

NOTES

       La  fonction  getpwent_r()  n'est  pas  vraiment reentrante puisqu'elle
       partage la position de lecture  dans  le  flux  avec  tous  les  autres
       threads.

EXEMPLE

       #define _GNU_SOURCE
       #include <pwd.h>
       #include <stdio.h>
       #define BUFLEN 4096

       int
       main(void)
       {
           struct passwd pw, *pwp;
           char buf[BUFLEN];
           int i;

           setpwent();
           while (1) {
               i = getpwent_r(&pw, buf, BUFLEN, &pwp);
               if (i)
                   break;
               printf("%s (%d)\tHOME %s\tSHELL %s\n", pwp->pw_name,
                      pwp->pw_uid, pwp->pw_dir, pwp->pw_shell);
           }
           endpwent();
           exit(EXIT_SUCCESS);
       }

VOIR AUSSI

       fgetpwent(3),    getpw(3),   getpwent(3),   getpwnam(3),   getpwuid(3),
       putpwent(3), passwd(5)

COLOPHON

       Cette page fait partie de  la  publication  3.27  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

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

       Christophe Blaess  <URL:http://www.blaess.fr/christophe/>  (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/> (2003-2006).  Florentin
       Duneau et l'equipe francophone de traduction de Debian (2006-2009).

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

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.