📄 format.h
字号:
void initialize_disk()
{
int i=0,type;
printf("Creating the ext2 file system\n");
printf("Please wait ");
while(i<1)
{
printf("... ");
sleep(1);
i++;
}
printf("\n");
last_alloc_inode=1;
last_alloc_block=0;
for(i=0;i<16;i++)fopen_table[i]=0;
for(i=0;i<=BLOCK_SIZE;i++)Buffer[i]=0;
fp=fopen("FS_CZL.txt","w+b");
fseek(fp,DISK_START,SEEK_SET);
for(i=0;i<4611;i++)fwrite(Buffer,BLOCK_SIZE,1,fp);//全部用0填充
reload_group_desc();
reload_inode_entry(1);
reload_dir(0);
strcpy(current_path,"[root@ /");
strcpy(super_block[0].bg_volume_name,"EXT2FS");
super_block[0].bg_block_bitmap=BLOCK_BITMAP;
super_block[0].bg_inode_bitmap=INODE_BITMAP;
super_block[0].bg_inode_table=INODE_TABLE;
super_block[0].bg_free_blocks_count=4096;
super_block[0].bg_free_inodes_count=4096;
super_block[0].bg_used_dirs_count=0;
update_group_desc();
update_block_bitmap();
update_inode_bitmap();
inode_area[0].i_mode=518;
inode_area[0].i_blocks=1;
inode_area[0].i_size=32;
inode_area[0].i_atime=0;
inode_area[0].i_ctime=0;
inode_area[0].i_mtime=0;
inode_area[0].i_dtime=0;
inode_area[0].i_block[0]=alloc_block();
current_dir=get_inode();
update_inode_entry(current_dir);
dir[0].inode=dir[1].inode=current_dir;
dir[0].name_len=0;
dir[1].name_len=0;
dir[0].file_type=dir[1].file_type=2;//1:文件;2:目录
strcpy(dir[0].name,".");
strcpy(dir[1].name,"..");
for(type=2;type<32;type++)
dir[type].inode=0;
update_dir(inode_area[0].i_block[0]);
printf("The ext2 file system has been installed!\n");
}
void initialize_memory()
{
int i=0;
last_alloc_inode=1;
last_alloc_block=0;
for(i=0;i<16;i++)fopen_table[i]=0;
strcpy(current_path,"[root@ /");
current_dir=1;
fp=fopen("FS_CZL.txt","r+b");
if(fp==NULL)
{
printf("The File system does not exist!\n");
initialize_disk();
return ;
}
reload_group_desc();
}
void format()
{
initialize_disk();
initialize_memory();
}
void help()
{
printf(" ***************************************************************************\n");
printf(" * An simulation of ext2 file system *\n");
printf(" * *\n");
printf(" * The available commands are: *\n");
printf(" * 1.change dir : cd+dir_name 7.create dir : mkdir+dir_name *\n");
printf(" * 2.create file : mkf+file_name 8.delete dir : rmdir+dir_name *\n");
printf(" * 3.delete file : rm+file_name 9.read file : read+file_name *\n");
printf(" * 4.open file : open+file_name 10.write file : write+file_name *\n");
printf(" * 5.close file : close+file_name 11.logoff : quit *\n");
printf(" * 6.list items : ls 12.this menu : help *\n");
printf(" * 13.change attri:attrib+number(1-7)+file_name *\n");
printf(" * 14.format disk : format *\n");
printf(" ***************************************************************************\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -