📄 writef.c
字号:
#include <stdio.h>
#include "filesys.h"
void* writefile(char* txt,char* filename )
{
int len,quotient,residue,i,inodeid;
struct inode* inodei;
readdir2(currentuser);
inodeid=map2inode(filename);
inodei=(struct inode*)posinode(inodeid);
if(access(currentuser,inodei,WRITE)==0)
return NULL;
len=strlen(txt);
quotient=len/BLOCKSIZE;
residue=len%BLOCKSIZE;
if (residue)
quotient++;
for(i=0;i<abs(inodei->di_size-quotient);i++)
{
if(inodei->di_size<quotient)
{
inodei->di_addr[inodei->di_size+i]=balloc();
}
else
{
bfree(inodei->di_addr[inodei->di_size-i-1]);
}
}
inodei->di_size=quotient;
blockwrite(txt,inodei);
updateinodetable(inodei);
return inodei;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -