Archiv verlassen und diese Seite im Standarddesign anzeigen : C: Passwort Check echo?
Hallo,
Ich habe hier einen sehr simplen Passwort Check, und mich stoert das
das Passwort auf der Console noch zu sehen ist, wie stellt man das denn
ab?
int check_pass() {
int valid_change;
struct passwd *p;
char user[100];
const char pword[100];
const char newpasswd[100];
printf("Enter Password:");
scanf("%s",&newpasswd);
if (strcmp(newpasswd,"foobar") == 0) {
fprintf(stderr, "password is valid\n");
valid_change = 1;
}
else {
fprintf(stderr, "password is not valid\n");
exit (1);
}
}
man 3 getpass
Edit: Oops. Ist als "obsolete" markiert.
In diesem Falle mach es besser so, wie hier beschrieben:
http://www.erlenstar.demon.co.uk/unix/faq_4.html
Hallo Joghurt :)
Danke, ich seh es mir mal an.
Bin grad dabei meine C Kentnisse aufzufrischen und es macht Spass :)
Ich poste das Ergebnis dann spaeter.
Gruss 403
Hm, hat etwas laenger gedauert, weil ich den Unterschied zwischen
1
printf("x1");
sleep(2);
printf("x2");
und
2
printf("x1\n");
sleep(2);
printf("x2\n");
noch nicht kannte. Ist jedenfalls auf FreeBSD6 so, das in 1 erst
geschlafen wird und dann gedruckt.
#include <stdlib.h>
#include <stdio.h>
#include <termios.h>
#include <string.h>
char p1() {
printf("Enter Password:\n");
}
char p2() {
printf("Re-Enter Password:\n");
}
int main(int argc, char * argv[]) {
char * z;
FILE *fp;
fp=(fopen("/tmp/x", "r+"));
p1();
z=getpass(stdin);
fwrite(z,1,1,fp);
sleep (2);
p2();
z=getpass(stdin);
//fwrite(z,1,fp);
fclose(fp);
return(0);
}
Gruss 403 :D
BLUESCREEN3D
12-05-2006, 14:47
printf("x1");
sleep(2);
printf("x2");
Hier könntest du auch vor dem sleep() ein fflush(stdout) aufrufen, falls du eigentlich keine Zeilenwechsel an der Stelle wolltest.
char p1()
char p2()
Hier solltest du char durch void ersetzen, da diese Funktionen keine Werte zurückgeben.
Hallo,
Danke fuer die Tips. fflush kannte ich noch gar nicht.
PS1=
Habe grade eine gute Ressource gefunden:
http://www.cs.cf.ac.uk/Dave/C/node1.htm
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.