GETPWNAM

Section: Manuel du programmeur Linux (3)
Updated: 21 juillet 2003
Index


NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
FICHIERS
CONFORMITÉ
NOTES
VOIR AUSSI
TRADUCTION

NOM

getpwnam, getpwuid - Lire un enregistrement du fichier des mots de passe.

SYNOPSIS

#include <pwd.h>
#include <sys/types.h>

struct passwd *getpwnam (const char * name);

struct passwd *getpwuid (uid_t uid);

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 :

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  */
};

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.

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.