Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

programas_uteis [2009/02/20 16:32]
laureano
programas_uteis [2009/05/10 16:32] (atual)
laureano
Linha 1: Linha 1:
 ====== Programas Úteis ====== ====== Programas Úteis ======
 Esta seção conterá pequenos programas, que em muitos casos são simples, mas ainda sim úteis. Esta seção conterá pequenos programas, que em muitos casos são simples, mas ainda sim úteis.
 +
 +===== Leitura de senha em C =====
 +<code c>
 +/* senha.c */
 +
 +#include <unistd.h>
 +#include <termios.h>
 +#include <stdio.h>
 +#include <string.h>
 +
 +void getsen(char * psSenha, int iTamanho )
 +{
 +  int i;
 +  char cLetra;
 +  struct termios stTerminalModificado;
 +  struct termios stTerminalOriginal;
 + 
 +  tcgetattr(0, &stTerminalModificado);
 +  stTerminalOriginal = stTerminalModificado;
 +
 +  /* modifica o terminal para não ecoar na tela o que for digitado */
 +  stTerminalModificado.c_lflag&=~(ECHO|ICANON);
 +  stTerminalModificado.c_cc[VMIN]=1;
 +  stTerminalModificado.c_cc[VTIME]=0;
 +  tcsetattr(0, TCSAFLUSH, &stTerminalModificado);
 +
 +  for( i=0; i< iTamanho -1; i++)
 +  {
 +    cLetra=getchar();
 +    if (cLetra == '\n')
 +      break;
 +    psSenha[i]=cLetra;
 +    fprintf(stderr, "*");
 +  }
 +  putchar ('\n');
 +  psSenha[i] = '\0';
 +
 +  /* restaura ao status original */
 +  tcsetattr(0, TCSAFLUSH, &stTerminalOriginal);
 +  return;
 +}
 +
 +int main(void)
 +{
 +   char sSenha[30];
 +   memset(sSenha,0, sizeof(sSenha));
 +   printf("\nEntre com a senha:");
 +   getsen(sSenha,30);
 +   printf("\nSenha digitada [%s]\n", sSenha);
 +   return 0;
 +}
 +</code>
  
 ===== Número ASCII do teclado ===== ===== Número ASCII do teclado =====
programas_uteis.txt · Última modificação: 2009/05/10 16:32 por laureano
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0