L'obtention d'un mot de passe en C sans utiliser getpass (3)?
Je pourrais utiliser getpass()
pour obtenir un mot de passe. Toutefois, la page de man dit:
Cette fonction est obsolète. Ne pas utiliser de
c'.
Qu'est-ce que la façon actuelle pour obtenir un mot de passe de l'utilisateur du terminal, sans écho, d'une manière conforme à POSIX façon? (À l'origine, j'ai dit "de façon portable", mais mon intention était d'éviter d'utiliser une fonction obsolète.]
- Il n'existe pas de portable moyen - cela dépend fortement de votre plate-forme.
- ce n'est pas la peine... même si c'est de l'HÉRITAGE, il est le plus portable de chemin à faire à ce sujet.
Vous devez vous connecter pour publier un commentaire.
cela doit fonctionner sur linux/macosx, windows version Get/Set ConsoleMode
password[strlen(password) - 1] = 0;
- c'est incroyablement mauvais.Vous pouvez utiliser le ncurses bibliothèque pour lire l'entrée standard sans afficher les résultats à l'écran. (Appel
noecho()
avant d'obtenir une entrée). La bibliothèque a été autour depuis des siècles et fonctionne sur une grande variété de plates-formes (la version de windows peut être trouvé ici)Même si c'est une très vieille question qui a déjà été répondu, voici ce que j'ai été à l'aide (qui est très similaire à la accepté de répondre):
Selon la L'université de Milwaukee de la documentation il est obsolète parce que:
Sur windows, vous pouvez probablement utiliser la
SetConsoleMode
api, décrit ici.