|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2000
Città: Sospeso nell'incredibile
Messaggi: 830
|
[c][unix] redirezione file standard (OUT e IN)
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 ...
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
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 ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
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.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ho visto che ncurses dovrebbe già avere getch
![]() Quindi: Codice:
#include <ncurses.h> int main() { initscr(); getch(); endwin(); return 0; } |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ecco qui ad esempio l'input di una pass con curses:
Codice:
#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; } |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Nov 2000
Città: Sospeso nell'incredibile
Messaggi: 830
|
grazie mille adesso provo..
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:11.