View Full Version : [c][unix] redirezione file standard (OUT e IN)
duchetto
05-07-2007, 10:22
come faccio a non far visualizzare sul terminale i caratteri inseriti da tastiera in un programma c, per intederci devo fare inserire una password dopodichè devo renderli di nuovo visibili, ho provato un po' a chiudere i vari stdin stdout ma forse non ho ben chiaro come devo fare ...
Non c'è niente nel linguaggio standard, devi utilizzare un input non-buffered, se non sbaglio si può fare con la libreria ncurses...
Comunque ilsensine ha scritto più volte un metodo per farlo...il difficile è trovarlo ;)
ilsensine
05-07-2007, 10:32
Devi farti una bella scorpacciata di termios (v. man termios). In particolare, devi rimuovere l'echo da stdin.
C'è anche una funzione getpass, ma è stata marcata obsoleta da tempo.
Ho visto che ncurses dovrebbe già avere getch ;)
Quindi:
#include <ncurses.h>
int main() {
initscr();
getch();
endwin();
return 0;
}
Dovrebbe funzionare...
Ecco qui ad esempio l'input di una pass con curses:
#include <ncurses.h>
#include <stdio.h>
int main()
{
initscr();
int c;
do
{
noecho();
refresh();
c = getch();
refresh();
echo();
printf("*");
}
while(c != '\n');
endwin();
return 0;
}
duchetto
05-07-2007, 12:40
grazie mille adesso provo..:)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.