delete.c

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

C
57
字号
#include <stdio.h>

#include "filesys.h"

delete(filename)

char *filename;

{

  unsigned int dinodeid,i;

  struct inode *inode;  

  dinodeid=namei(filename);

printf("\ndinodeid=%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("\ni=%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("\ndi_number=%d\n",inode->di_number);

  iput(inode);

printf("\ndir.size=%d\n",dir.size);

}

⌨️ 快捷键说明

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