Provided by: manpages-fr-dev_2.64.1-1_all bug

NOM

       getpwent_r,  fgetpwent_r  - Obtenir un enregistrement du fichier passwd
       de manière ré-entrante

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

   Feature Test Macro Requirements for glibc (see 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
       ré-entrantes des fonctions getpwent(3) et fgetpwent(3). La première lit
       l’enregistrement  passwd  suivant  à  partir  du  flux  initialisé  par
       setpwent(3). La seconde lit l’enregistrement passwd suivant à partir du
       flux fp passé en paramètre.

       La structure passwd est définie dans <pwd.h> ainsi :

              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 réel */
                  char    *pw_dir;       /* Répertoire personnel */
                  char    *pw_shell;     /* Interpréteur de commande */
              };

       Les fonctions non ré-entrantes  renvoient  un  pointeur  sur  une  zone
       statique,  zone  qui contient d’autres pointeurs vers le nom, le mot de
       passe,  le  champ  gecos,  le  répertoire  personnel  et  le  shell  de
       l’utilisateur.  Les  fonctions ré-entrantes décrites 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 chaînes supplémentaires. Le résultat  de
       ces  fonctions,  la  structure  passwd lue dans le flux, est enregistré
       dans le tampon *pwbuf fourni,  et  un  pointeur  vers  cette  structure
       passwd est renvoyé dans *pwbufp.

VALEUR RENVOYÉE

       Si  elles  réussissent,  ces  fonctions  renvoient  0 et *pwbufp est un
       pointeur vers la structure passwd. Si  elles  échouent,  ces  fonctions
       renvoient une valeur d’erreur et *pwbufp est NULL.

ERREURS

       ENOENT Plus d’entrées.

       ERANGE L’espace  tampon  fourni  est  insuffisant.  Veuillez  essayer à
              nouveau avec un tampon plus grand.

CONFORMITÉ À

       Ces fonctions  sont  des  extensions  GNU,  effectuées  dans  un  style
       ressemblant  à  la  version  POSIX  de  fonctions  comme getpwnam_r(3).
       D’autres systèmes 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  ré-entrante  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)

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