⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 format.h

📁 用c语言编程
💻 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 + -