#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h>

int physic[300]; /* 文件地址缓冲区 / int style=1; / 文件的类型 */

char cur_dir[10]="c"; /* 当前目录 */

struct command { char com[10]; }cmd[12];

struct block { int n; /* 空闲的盘快的个数 / int free[50]; / 存放空闲盘快的地址 / int a; / 模拟盘快是否被占用 */ }memory[200];

struct block_super { int n; /* 空闲的盘快的个数 / int free[50]; / 存放进入栈中的空闲块 / int stack[50]; / 存放下一组空闲盘快的地址 */ }super_block;

struct node /* i结点信息 / { int file_style; / i结点 文件类型 / int file_length; / i结点 文件长度 / int file_address[100]; / i结点 文件的物理地址 */ } i_node[64];

struct dir /* 目录项信息 / { char file_name[10]; / 文件名 / int i_num; / 文件的结点号 / char dir_name[10]; / 文件所在的目录 */ } c[64];

void format() /* 格式化 / { int i,j,k; super_block.n=50; for(i=0;i<50;i++) / 超级块初始化 / { super_block.free[i]=i; / 存放进入栈中的空闲块 / super_block.stack[i]=50+i; / 存放下一组的盘块 */ }

for(i=0;i<64;i++)     /* 信息初始化 */
{
    for(j=0;j<100;j++)
    {
        i_node[i].file_address[j]=-1;/* 文件地址 */
    }
    i_node[i].file_length=-1;  /* 文件长度 */
    i_node[i].file_style=-1;  /* 文件类型 */
}

for(i=0;i<64;i++)     /* 根目录区信息初始化 */
{
    strcpy(c[i].file_name,"");
    c[i].i_num=-1;
    strcpy(c[i].dir_name,"");
} 
for(i=0;i<200;i++)     /* 存储空间初始化   */
{
    memory[i].n=0;      /* 必须有这个 */
    memory[i].a=0;      
    for(j=0;j<50;j++)
    {
        memory[i].free[j]=-1;
    }
}
for(i=0;i<200;i++)    /* 将空闲块的信息用成组链接的方法写进每组的最后一个块中 */
{         /* 存储空间初始化 */

    if((i+1)%50==0)
    {
        k=i+1;
        for(j=0;j<50;j++)
        {
            if(k<200)
            {
                memory[i].free[j]=k;/* 下一组空闲地址 */
                memory[i].n++;  /* 下一组空闲个数   注意在memory[i].n++之前要给其赋初值 */
                k++;
            }
            else
            {
                memory[i].free[j]=-1;
            }
        }
        memory[i].a=0;    /* 标记为没有使用 */
        continue;     /* 处理完用于存储下一组盘块信息的特殊盘块后,跳过本次循环 */
    }
    for(j=0;j<50;j++)
    {
        memory[i].free[j]=-1;
    }
    memory[i].n=0;  
}
printf("已经初始化完毕\n");
printf("欢迎进入UNIX文件模拟系统!!!\n\n");

}

C语言实现简单UNIX文件模拟系统

原文地址: https://www.cveoy.top/t/topic/f1DI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录