Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Advanced Developers Conference     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: FAQ - Linux/Unix ::  kein echo bei eingabe     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
videoseven23
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.04.2002
Beiträge: 4
Beitrag videoseven23 Mitglied 10:38:00 21.07.2002   Titel:   kein echo bei eingabe            Zitieren

Hallo,

ich suche eine funktion oder was auch immer die ein wort(passwort) in einen buffer(den ich vorgebe also nicht die passwd struct) schreibt, ohne dass das wort am bildschirm erscheind(also ohne echo!)

kennt jemand so eine funktion?

danke
videoseven

P.S. Gibts hier keine Suchfunktion ???
Werbeunterbrechung
Daniel E.
Mitglied

Benutzerprofil
Anmeldungsdatum: 17.07.2001
Beiträge: 4475
Beitrag Daniel E. Mitglied 12:32:00 21.07.2002   Titel:              Zitieren

termios(3)
getpass(3) wenn es sein muss ...


Zuletzt bearbeitet von rüdiger am 15:22:05 15.02.2004, insgesamt 1-mal bearbeitet
Martin G-
Unregistrierter




Beitrag Martin G- Unregistrierter 20:15:00 21.07.2002   Titel:              Zitieren

Hier ist die konkrete Lösung:
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*
    password.c - Passwortabfrage ohne Echo
*/


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

int main()
 {
  int old_flags;
  char password[16];
  struct termios term_attr;

  if (tcgetattr(STDIN_FILENO, &term_attr) != 0)
   {
    perror("password: tcgetattr() failed");
    return(1);
   }             /* alte Einst. sichern */
  old_flags = term_attr.c_lflag;
  term_attr.c_lflag &= ~ECHO;
  if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &term_attr) != 0)
    perror("password: tcsetattr() failed");

  printf("password: ");
  scanf("%15s", password);
            /* Std.-Eingabe wie vorher */
  term_attr.c_lflag = old_flags;
  if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &term_attr) != 0)
    perror("password: tcsetattr() failed");

  if (strcmp(password, "secret") == 0)
    printf("\npassword accepted.\n");
  else
    printf("\nwrong password.\n");

  return(0);
 }  
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*
password.c - Passwortabfrage ohne Echo
*/


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

int main()
{
int old_flags;
char password[16];
struct termios term_attr;

if (tcgetattr(STDIN_FILENO, &term_attr) != 0)
{
perror("password: tcgetattr() failed");
return(1);
} /* alte Einst. sichern */
old_flags = term_attr.c_lflag;
term_attr.c_lflag &= ~ECHO;
if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &term_attr) != 0)
perror("password: tcsetattr() failed");

printf("password: ");
scanf("%15s", password);
/* Std.-Eingabe wie vorher */
term_attr.c_lflag = old_flags;
if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &term_attr) != 0)
perror("password: tcsetattr() failed");

if (strcmp(password, "secret") == 0)
printf("\npassword accepted.\n");
else
printf("\nwrong password.\n");

return(0);
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*
    password.c - Passwortabfrage ohne Echo
*/


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

int main()
 {
  int old_flags;
  char password[16];
  struct termios term_attr;

  if (tcgetattr(STDIN_FILENO, &term_attr) != 0)
   {
    perror("password: tcgetattr() failed");
    return(1);
   }             /* alte Einst. sichern */
  old_flags = term_attr.c_lflag;
  term_attr.c_lflag &= ~ECHO;
  if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &term_attr) != 0)
    perror("password: tcsetattr() failed");

  printf("password: ");
  scanf("%15s", password);
            /* Std.-Eingabe wie vorher */
  term_attr.c_lflag = old_flags;
  if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &term_attr) != 0)
    perror("password: tcsetattr() failed");

  if (strcmp(password, "secret") == 0)
    printf("\npassword accepted.\n");
  else
    printf("\nwrong password.\n");

  return(0);
 }  

Das Beispiel stammt aus meinem Buch "C und Linux" http://home.t-online.de/home/AuM.Graefe/c_und_linux.html


Zuletzt bearbeitet von rüdiger am 15:22:54 15.02.2004, insgesamt 1-mal bearbeitet
C/C++ Forum :: FAQ - Linux/Unix ::  kein echo bei eingabe   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.