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

📄 ballfre.c

📁 操作系统实验,文件系统,c语言实现的
💻 C
字号:
#include <stdio.h>

#include "filesys.h"

static unsigned int block_buf[BLOCKSIZ];

unsigned int balloc()

{

  unsigned int free_block,free_block_num;

  int i;

  

  if(filsys.s_nfree==0)

  {

      printf("\nDisk Full!!!\n");

    return  DISKFULL;

   };

   free_block=filsys.s_free[filsys.s_pfree];

   if(filsys.s_pfree==NICFREE-1)

   {

printf("s_nfree=%d\n",filsys.s_nfree);

fseek(fd,DATASTART+(562-filsys.s_nfree)*BLOCKSIZ,SEEK_SET);

      fread(block_buf,1,BLOCKSIZ,fd);

       free_block_num=block_buf[NICFREE]; /*the total block num in the group*/

       for(i=0;i<free_block_num;i++)

   {

       filsys.s_free[NICFREE-1-i]=block_buf[i];

   }

       filsys.s_pfree=NICFREE-free_block_num;

   }

   else filsys.s_pfree++;

   filsys.s_nfree--;

   filsys.s_fmod=SUPDATE;

   return free_block;

 }

  

 bfree(block_num)

 unsigned int block_num;

 {

   int i;

   if(filsys.s_pfree==0)    /* s-free full */

   {

     block_buf[NICFREE]=NICFREE;

       for(i=0;i<NICFREE;i++)

   {

       block_buf[i]=filsys.s_free[NICFREE-1-i];

   }

       filsys.s_pfree=NICFREE-1;

    }

    fseek(fd,BLOCKSIZ,SEEK_SET); 

    fwrite(block_buf,1,BLOCKSIZ,fd);

    filsys.s_nfree++;

    filsys.s_fmod=SUPDATE;

 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -