table of contents
GETPWENT_R(3) | Manuel du programmeur Linux | GETPWENT_R(3) |
NOM¶
getpwent_r, fgetpwent_r - Obtenir un enregistrement du fichier passwd de manière réentranteSYNOPSIS¶
#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)) :
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).
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);
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.44 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> ».21 octobre 2010 | GNU |