?? rm.c
字號:
#include <stdio.h>
#include "filesys.h"
int rmf(char* name)
{
unsigned short nid,did;
struct inode *pinode,*pinode2;
int i;
nid=map2inode(name);
did=dirname2id(name);
//printf("%d ",nid);
if(nid==MAPERR)
return 0;
pinode=(struct inode*)posinode(nid);
pinode2=readdir2(currentuser);
if(directory_2.direct[did].filetype==DIDIR)
return 2;
if(access(currentuser,pinode,WRITE))
{
--(pinode->n_refer);
if((pinode->n_refer)==0)
{
for(i=0;i<(pinode->di_size);i++)
{
bfree(pinode->di_addr[i]);
}
ifree(nid);
}
else
{
updateinodetable(pinode);
}
strcpy(directory_2.direct[did].name,"");
directory_2.direct[did].filetype=DIEMPTY;
directory_2.direct[did].d_ino=0;
directory_2.size--;
dir2todisk(&directory_2,pinode2);
return 1;
}
return 2;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -