/home -> /home/fatec/ -> /home/fatec/soii -> /home/fatec/soii/echodisable --::--

DESABILITAR ECHO NA ENTRADA DE DADOS

Prof. Rossano Pablo Pinto, MSc.





PROGRAMA 1
⇒ Desabilita echo de caracteres na entrada de dados: termios-test.c

/*
 * Author: Rossano Pablo Pinto - rossano at gmail com
 * Fri May 21 20:50:57 BRT 2010
 *
 */

#include <termios.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

char* get_string_no_echo();

int main(void)
{
      char *message;

      message = get_string_no_echo();

      printf("\nMessage: %s\n",message);

      return 0;
}

char* get_string_no_echo()
{
      int res = 0;
      struct termios *termios_p_orig = 
	    (struct termios *)malloc(sizeof(struct termios));
      struct termios *termios_p_alter = 
	    (struct termios *)malloc(sizeof(struct termios));

      char *message = (char *)malloc(80);

      // GET ORIGINAL CONFIGURATION
      tcgetattr(1, termios_p_orig);

      // COPY ORIGINAL CONFIGURATION TO termios_p_alter
      *termios_p_alter = *termios_p_orig;

      // ALTER termios_p_alter TO DISABLE ECHO AT TERMINAL INPUT
      termios_p_alter->c_lflag &= ~ECHO;
      tcsetattr(1, TCSANOW, termios_p_alter);

      printf("password: ");
      scanf("%s",message);

      // RESTORE ORIGINAL TERMINAL CONFIGURATION
      tcsetattr(1, TCSANOW,termios_p_orig);

      return message;
}








Faculdade de Tecnologia de Americana
Rua Emílio de Menezes, s/n / Americana / SP / Brasil
Copyleft 2010 Rossano Pablo Pinto