GETPASS
Section : Manuel du programmeur Linux (
3)
Mise à jour de la version anglaise : 5 décembre 2000
Index
Menu principal
NOM
getpass - Saisie d'un mot de passe (password)
SYNOPSIS
#include <unistd.h>
char *getpass(const char *prompt);
DESCRIPTION
Cette fonction est obsolète, ne l'utilisez pas !
La fonction
getpass()
ouvre
/dev/tty
(le terminal de contrôle du processus)
affiche le message d'accueil
prompt,
éteint l'écho local, lit une ligne (le mot de passe),
puis restaure l'état de
/dev/tty
et le referme.
VALEUR RENVOYÉE
La fonction
getpass()
renvoie un pointeur sur une chaîne de caractères allouée statiquement
contenant les
PASS_MAX
premiers caractères du mot de passe
sans le retour chariot final, terminé par un octet nul (« »).
Ce tampon peut être écrasé par un autre appel.
En cas d'erreur, l'état du terminal est restauré,
errno
est renseignée, et la fonction renvoie NULL.
ERREURS
La fonction peut échouer dans les cas suivants :
- ENXIO
-
Le processus n'a pas de terminal de contrôle.
FICHIERS
/dev/tty
CONFORMITÉ
Présente dans SUSv2, mais marquée comme historique.
Supprimée dans POSIX.1-2001.
NOTES
Dans les versions libc4 et libc5, le message n'est pas affiché sur
/dev/tty
mais sur
stderr.
De plus, si
/dev/tty
ne peut être ouvert, le mot de passe est lu depuis
stdin.
Le tampon statique a une longueur de 128 octets,
aussi seulement 127 caractères du mot de passe sont renvoyés.
Durant la lecture, les signaux
(
SIGINT,
SIGQUIT,
SIGSTOP,
SIGTSTOP)
sont désactivés et les caractères de contrôle correspondants
(en général Ctrl-C, Ctrl-\, Ctrl-Z et Ctrl-Y) sont transmis
comme partie intégrante du mot de passe.
Depuis la libc5.4.19, l'édition de ligne est également désactivée, ainsi
les retours en arrière, etc., seront présents dans le mot de passe.
Pour la glibc2, si
/dev/tty
ne peut pas être ouvert, le message est envoyé sur
stderr
et le mot de passe lu sur
stdin.
Il n'y a pas de limite à la longueur du mot de passe.
L'édition de ligne n'est pas désactivée.
D'après SUSv2, la valeur de
PASS_MAX
doit être définie dans
<limits.h>
au cas où elle est inférieure à 8, et doit toujours être accessible avec
sysconf(_SC_PASS_MAX).
Quoiqu'il en soit, POSIX.2 retire les constantes
PASS_MAX
et
_SC_PASS_MAX,
ainsi que la fonction
getpass().
Les bibliothèques libc4 et libc5 n'ont jamais géré
PASS_MAX
ou
_SC_PASS_MAX.
La glibc2 accepte
_SC_PASS_MAX
et renvoie
BUFSIZ
(par exemple, 8192).
BOGUES
Le processus appelant doit effacer le mot de passe saisi aussi vite que
possible, afin d'éviter d'en conserver une copie en texte clair dans
son espace d'adressage.
VOIR AUSSI
crypt(3)
TRADUCTION
Ce document est une traduction réalisée par Christophe Blaess
<http://www.blaess.fr/christophe/> le 3 novembre 1996
et révisée le 17 juillet 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation
française de qualité. La version anglaise la plus à jour de ce document est
toujours consultable via la commande : « LANG=C man 3 getpass ».
N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute
erreur dans cette page de manuel.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- FICHIERS
-
- CONFORMITÉ
-
- NOTES
-
- BOGUES
-
- VOIR AUSSI
-
- TRADUCTION
-
Dernière mise à jour : 17 juillet 2008