Provided by: manpages-fr-dev_3.65d1p1-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);

   Exigences de macros de test de fonctionnalités 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 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.

       La structure passwd est définie 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;     /* Information utilisateur */
               char    *pw_dir;       /* Répertoire personnel */
               char    *pw_shell;     /* Interpréteur de commande */
           };

       Pour plus d'informations à propos des champs de cette structure, consultez passwd(5).

       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)

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).  Florentin  Duneau  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> ».

GNU                                              21 octobre 2010                                   GETPWENT_R(3)