openfiledescriptortable.cpp

来自「模拟Linux文件系统 在任一OS下」· C++ 代码 · 共 30 行

CPP
30
字号
#include "disk.h"
void openfiledescriptortable::openfiledescriptortable_ini(){
	for(int i=0;i<openfiledescriptortableamount;i++)
		availability[i]=0;
}
openfileitem*openfiledescriptortable::createopenfile(inode*pinode)//创建一个打开文件描述表项,并且该项的pinode指针指向pinode
{
	for(int i=0;i<openfiledescriptortableamount;i++){
		if(availability[i]==0){
			availability[i]=1;
			ofitable[i].pinode=pinode;
			ofitable[i].filesite=0;
			ofitable[i].paracteristic=0;
			ofitable[i].usetimes=1;
			return ofitable+i;
		}
	}
	cout<<"there is no free space in openfiledescriptortable"<<endl;
	exit(0);
	return NULL;
}
openfileitem*openfiledescriptortable::openopenfile(openfileitem*pofi)//打开一个描述表项,可以加上权限检测
{
	availability[pofi-ofitable]++;
	return pofi;
}
inode*openfiledescriptortable::deleteitem(openfileitem*oi){
	availability[oi-ofitable];
	return oi->pinode;
}

⌨️ 快捷键说明

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