delete.c

来自「操作系统实验,文件系统,c语言实现的」· C语言 代码 · 共 29 行

C
29
字号
#include <stdio.h>
#include "filesys.h"
delete(char *filename)
{
	unsigned int dinodeid,i;
	struct inode *inode;  
	dinodeid=namei(filename);
	printf("dinodeid=%d,dir.size=%d\n",dinodeid,dir.size);
	if(dinodeid!=NULL)
		inode=iget(dinodeid);
	inode->di_number--;
	for(i=0;i<dir.size;i++)
		if(dir.direct[i].d_ino==dinodeid) break;
		printf("i=%d\n",i);
		i++;
		while(dir.direct[i].d_ino!=NULL)
		{
			strcpy(dir.direct[i-1].d_name,dir.direct[i].d_name);
			dir.direct[i-1].d_ino=dir.direct[i].d_ino;
			i++;
		}
		dir.direct[i-1].d_ino=0;
		dir.size=i-1;
		printf("di_number=%d\n",inode->di_number);
		iput(inode);
		printf("dir.size=%d\n",dir.size);
}

⌨️ 快捷键说明

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