void main()
{
		char str[10];
		char strname[10];
		char c;

		printf("是否格式化?<y/n>");
		scanf("%c",&c);
		fgetc(stdin);
		if(c=='y')
		{
			if(!Format())
			{
				return;
			}
			printf("格式化完毕!\n");
		}

		if(!Install())
		{
			return;
		}
		printf("login.................\n");
		login();
		showhelp();
		printf("%s>",cmdhead);
		while(1)
		{
			scanf("%s",&str);
			if(strcmp(str,"exit")==0)
			{
				fclose(fd);
				return;
			}
			else	if(strcmp(str,"dir")==0)
					{
						showdir();
					}
			else if(strcmp(str,"bit")==0)
			{
					showbitmap();
			}
			else if(strcmp(str,"help")==0)
			{
					showhelp();
			}
			
			else	if(Iscmd(str))
			{
				scanf("%s",&strname);
				cmd_Up(str,strname);
			}

			else
			{
				printf("错误命令!\n");
			}
			printf("%s>",cmdhead);
		}

}
Esempio n. 2
0
int main()
{
		char str[10];
		char strname[10];
		char c;

		printf("FormatDisk?<y/n>");
		scanf("%c",&c);
		fflush(stdin);
		if(c=='y')
		{
			if(!Format())
			{
				return -1;
			}
			printf("Finished!\n");
		}

		if(!Install())
		{
			return -1;
		}
		printf("login now\n");
		login();
		showhelp();
		printf("%s>",cmdhead);
		while(1)
		{
			scanf("%s",&str);
			if(strcmp(str,"shutdown")==0)
			{
				fclose(fd);
				return 0 ;
			}
			else	if(strcmp(str,"dir")==0)
					{
						showdir();
					}
			else if(strcmp(str,"bit")==0)
			{
					showbitmap();
			}

			else if(strcmp(str,"help")==0)
			{
					showhelp();
			}
			else if(strcmp(str,"logout")==0)
			{
				logout();
			}
			else	if(Iscmd(str))
			{
				scanf("%s",&strname);
				cmd_Up(str,strname);
			}

			else
			{
				printf("Error!!\n");
			}
			printf("%s>",cmdhead);
		}
return 0;
}
void login()
{
	char str[20];
	int i;
	do{
		do{
		printf("user name:");
		fflush(stdin);
		scanf("%s",str);
		for(i=0;i<PWDNUM ;i++)
		{
		//printf("%s",pwd[i].username);
			if(strcmp(pwd[i].username,str)==0)
			{
				break;
			}
			if(strcmp("exit",str)==0)
			{
				exit(0);
			}
		}
		if(i!=PWDNUM)
		{
			break;
		}

		}while(1);
	printf("passwd:");
	fgetc(stdin);
	scanf("%s",str);
	if(strcmp(pwd[i].password,str)==0)
	{
		break;
	}
	if(strcmp("exit",str)==0)
	{
		exit(0);
	}

	}while(1);

cur_user=&pwd[i];

inodetemp=read_inode(0);//读取主目录的inode;
if((inodetemp->di_mode&DIMODE_DIR)!=DIMODE_DIR)
{
	printf("读取主目录失败,请重新格式化!\n");
}
else
{
	changeinode();//交换指针    cur_inode 指向当前目录的 inode
	read_dir_data(cur_inode->di_block[0]);

	//printf("%d",cur_inode->di_block[0]);
}

strcpy(cmdhead,"root");
cmd_Up("cd","etc");
cmd_Up("cd",cur_user->username);
printf("login success!!\n");

}