zion - getpwnam
Nom
getpwnam, getpwuid - Lire un enregistrement du fichier des mots de passe.
Résumé
.nf #include <pwd.h> #include <sys/types.h> struct passwd *getpwnam (const char * name ); struct passwd *getpwuid (uid_t uid ); .fi
Description
La fonction getpwnam() renvoie un pointeur sur une structure contenant les divers champs de l'enregistrement de /etc/passwd correspondant au nom d'utilisateur name.
La fonction getpwuid() renvoie un pointeur sur une structure contenant les divers champs de l'enregistrement de /etc/passwd correspondant au à l'ID d'utilisateur uid.
La structure passwd est définie dans <pwd.h> ainsi :
.nf .ta 8n 16n 32n struct passwd { char *pw_name; /* Nom d'utilisateur */ char *pw_passwd; /* Mot de passe */ uid_t pw_uid; /* ID de l'utilisateur */ gid_t pw_gid; /* ID du groupe de l'utilisateur */ char *pw_gecos; /* Nom réel de l'utilisateur */ char *pw_dir; /* Répertoire de connexion */ char *pw_shell; /* Programme Shell de connexion */ }; .ta .fi |
Valeur renvoyée
Les fonctions getpwnam() et getpwuid() renvoient un pointeur sur une structure passwd, ou NULL si une erreur se produit, ou si l'enregistrement correspondant n'est pas trouvé. En cas d'erreur, errno est rempli.
Erreurs
0 ou ENOENT ou ESRCH ou EBADF ou EPERM ou ...
Le nom name ou l'identifiant uid n'ont pas été trouvés. |
ENOMEM
Pas assez de mémoire pour allouer la structure passwd. |
EIO
Erreur d'entrée/sortie. |
EINTR
Un signal a été capturé. |
EMFILE
Le nombre maximal (OPEN_MAX) de fichiers ouverts pour le processus est atteint. |
ENFILE
Le nombre maximal de fichiers ouverts sur le système est atteint. |
Fichiers
/etc/passwd
Base de données des mots de passe. .fi |
Conformité
SVID 3, POSIX, BSD 4.3
Notes
La description "VALEUR RENVOYÉE" ci-dessu vient de Posix.1-2001. Elle ne considère pas le cas "non trouvé" commme une erreur, et ne spécifie pas errno dans ce cas. Cela rend la détection d'erreur impossible. On peut dire que d'après Posix, errno est inchangé dans le cas où aucune entrée n'est trouvée. Des essais sur de nombreux systèmes Unix ont fait apparaître différentes valeurs dans ce cas : 0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM et probablement d'autres.
Voir aussi
fgetpwent (3), getgrnam (3), getpwent (3), setpwent (3), endpwent (3), getpw (3), putpwent (3), passwd (5)
Traduction
Christophe Blaess, 1996-2003.
Poster un commentaire