📄 main.c
字号:
/************************************************/
/* */
/* main.c */
/* */
/************************************************/
#include <stdio.h>
#include "filsys.h"
struct hinode hinode[NHINO]; /* 查找内存i节点的hash表 */
struct filsys filsys; /* 超级块数据结构 */
struct inode * cur_path_inode;
struct user user[USERNUM];
struct file sys_ofile[SYSOPENFILE];
struct direct cur_direct[NOFILE]; /* 路径 */
unsigned short cur_dir_id; /* 当前目录指针 */
char cur_path_name[DIRSIZ];
FILE *fd;
main()
{
char reg_or_log; int ff;char buf[50],buf2[50],buf3[50];
cur_dir_id = 0;
printf( "\n-----Welcome to this system!!!-----\n" );
printf( "initializing...\n" );
fd = fopen( "filesystem.dat", "r+b" );
if( fd != NULL ) /* 文件已经存在,不用格式化 */
{
printf( "installing...\n" );
init(); /* 读取磁盘数据 */
}
else /* 文件已经存在,要进行格式化 */
{
if( format() == 0 ) /* 格式化 */
return; /* 格式化不成功 */
printf( "installing...\n" );
init(); /* 读取磁盘数据 */
}
AGAIN:
printf( "\nDo you want to register or login? (R/L) " );
while( 1 )
{
reg_or_log = getch();
/* 注册新用户 */
if(( reg_or_log == 'r' ) || ( reg_or_log == 'R' ))
{
printf( "%c\n", reg_or_log );
reg();
goto AGAIN;
}
/* 登陆已有用户 */
else if(( reg_or_log == 'l' ) || ( reg_or_log == 'L' ))
{
printf( "%c\n", reg_or_log );
if( login() == 0) /* 登陆不成功 */
goto AGAIN;
break;
}
}
strcpy( cur_direct[cur_dir_id].d_name, "/" );
cur_direct[cur_dir_id].d_ino = ROOTDIR;
/*strcpy( buf, "My name is Deng Guanhe, What is your name?" );
if(( ff = creat( "good", 3 )) == -1 )
printf( "Can't creat file\n" );
else
{
write( ff, buf, sizeof( buf ));
close( ff );
if( ff = open( "good", O_RDONLY ) == -1 )
printf( "Can't open file\n" );
else
{
read( ff, buf2, sizeof( buf ));
close( ff );
}
}
if(( ff = open( "good", O_RDONLY )) == -1 )
printf( "Can't open file\n" );
else
{
read( ff, buf3, sizeof( buf ));
close( ff );
}*/
strcpy( cur_path_name, "/" );
while(1)
{
if( cmdexp() == 1 )
break;
}
halt();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -