Console / Terminal

Désactiver l'écho sur une console / Disable echo in a terminal

Ce petit exemple permet de voir comment désactiver l'écho sur une console, par exemple pour permettre la saisie d'un mot de passe.

#define STDIN 1
#include <sys/termios.h>
#include <stdio.h>

void main()
{
  struct termios  u235;
  char motdepasse[256];
  
  /* On récupére les paramètres de la console */
  ioctl(STDIN, TIOCGETA, &u235);

  /* On désactive l'écho */
  u235.c_lflag &= ~ECHO;
  ioctl(STDIN, TIOCSETA, &u235);
  
  printf("Quel est votre mot de passe? ");
  scanf("%s",motdepasse);
  printf("\n");
  
  /* On réactive l'écho */
  u235.c_lflag |= ECHO;
  ioctl(STDIN, TIOCSETA, &u235);
  
  /* On fait un petit affichage pour la forme */
  printf("Vous avez tapé : %s\n",motdepasse);
}