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

📄 ballfre.c

📁 基于UNIX6的文件系统模拟程序
💻 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)	{
		fseek(fd,DATASTART+free_block*BLOCKSIZ,SEEK_SET);		fread(block_buf,1,BLOCKSIZ,fd);		free_block_num = block_buf[NICFREE];		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,DATASTART+block_num*BLOCKSIZ,SEEK_SET);		fwrite(block_buf,1,BLOCKSIZ,fd);	}
	else
		filsys.s_pfree--;
	filsys.s_free[filsys.s_pfree] = block_num;	filsys.s_nfree++;	filsys.s_fmod=SUPDATE;}

⌨️ 快捷键说明

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