|
|
1.1 ! root 1: #include <stdio.h> ! 2: #include <sys/types.h> ! 3: #include <stat.h> ! 4: #include <signal.h> ! 5: #include <sgtty.h> ! 6: ! 7: /* ! 8: * Lock a terminal up until the knowledgeable Joe returns. ! 9: */ ! 10: char masterp[] = "hasta la vista\n"; ! 11: struct sgttyb tty, ntty; ! 12: char s[BUFSIZ], s1[BUFSIZ]; ! 13: ! 14: main(argc, argv) ! 15: char **argv; ! 16: { ! 17: register int t; ! 18: struct stat statb; ! 19: ! 20: for (t = 1; t <= 16; t++) ! 21: signal(t, SIG_IGN); ! 22: if (argc > 0) ! 23: argv[0] = 0; ! 24: if (gtty(0, &tty)) ! 25: exit(1); ! 26: ntty = tty; ntty.sg_flags &= ~ECHO; ! 27: stty(0, &ntty); ! 28: printf("Key: "); ! 29: fgets(s, sizeof s, stdin); ! 30: printf("\nAgain: "); ! 31: fgets(s1, sizeof s1, stdin); ! 32: putchar('\n'); ! 33: if (strcmp(s1, s)) { ! 34: putchar(07); ! 35: stty(0, &tty); ! 36: exit(1); ! 37: } ! 38: s[0] = 0; ! 39: for (;;) { ! 40: fgets(s, sizeof s, stdin); ! 41: if (strcmp(s1, s) == 0) ! 42: break; ! 43: if (strcmp(s, masterp) == 0) ! 44: break; ! 45: putchar(07); ! 46: if (gtty(0, &ntty)) ! 47: exit(1); ! 48: } ! 49: stty(0, &tty); ! 50: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.