getpasswd.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 44 行

C
44
字号
#include <u.h>#include <libc.h>#include <../boot/boot.h>voidgetpasswd(char *p, int len){	char c;	int i, n, fd;	fd = open("#c/consctl", OWRITE);	if(fd < 0)		fatal("can't open consctl; please reboot");	write(fd, "rawon", 5); Prompt:			print("password: ");	n = 0;	for(;;){		do{			i = read(0, &c, 1);			if(i < 0)				fatal("can't read cons; please reboot");		}while(i == 0);		switch(c){		case '\n':			p[n] = '\0';			close(fd);			print("\n");			return;		case '\b':			if(n > 0)				n--;			break;		case 'u' - 'a' + 1:		/* cntrl-u */			print("\n");			goto Prompt;		default:			if(n < len - 1)				p[n++] = c;			break;		}	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?