文件系统
2017-01-01 20:19:19 0 举报
文件系统是操作系统用来管理信息的一种机制,它负责在硬盘和其他大容量存储设备上组织、存储和检索数据。文件系统通过将数据分解成称为“文件”的单元,并将这些文件存储在目录结构中,使得用户可以方便地查找、访问和管理数据。每个文件都有其特定的属性,如名称、大小、创建日期等,这些属性可以帮助用户更好地了解文件的内容和用途。此外,文件系统还提供了对文件的基本操作,如创建、删除、复制、移动等。总之,文件系统是现代计算机系统中不可或缺的一部分,它为用户提供了一个高效、易用的数据管理工具。
作者其他创作
大纲/内容
Y
从blockPtr指向的位置开始读取BLOCKSIZE大小的字符串到缓冲区buf中
N
printf(\"do_read申请空间失败\\")
return -1
textPtr += len
偏移量加len
偏移量置为0
printf(\"文件不存在\\")
指针blockPtr指向需要读取的起始位置
len -= BLOCKSIZE - off
定义整型变量lenTmp值为len
判断是否为最后一个盘块
blockPtr指向要读的起始位置
off = 0
定义blockNum为第一个盘块的盘块号
判断buf是否为空
Read
textPtr指针向后移BLOCKSIZE - off个长度
blockNum = fatPtr-id
textPtr += BLOCKSIZE - off
free(buf)
输出:文件不存在
申请缓冲区
开始
doread
字符串指针textPtr指向text
int lenTmp = len
返回lenTmp-len
释放缓冲区
int blockNum = openfilelist[fd].first
unsigned char* blockPtr = myvhard +BLOCKSIZE*blockNum;
return
fat* fatPtr = (fat *)(myvhard+BLOCKSIZE) + blockNum
判断当前盘块是否够读
unsigned char* buf = (unsigned char*)malloc(1024)
fatPtr = (fat*)(myvhard + BLOCKSIZE) + blockNum
输出:len 长度过长,超过文件限制!
textPtr指针向后移len个长度
定义blockNum值为fat指针指向的盘块的盘块号
off -= BLOCKSIZE
偏移量递减一个盘块大小
结束
len 0
从buf+off位置开始复制当前盘块剩下的内容到textPtr指向的位置
printf(\"%s\\
openfilelist[fd].off = 0
读取起始位置向后移len个长度
输出:do_read寻找的块不存在
给len赋值为0
返回 -1
输出text
调用doread函数
len = 0
return lenTmp - len
从blockPtr指针指向的位置开始复制BLOCKSIZE大小的内容到缓冲区buf中
0
输出:do_read申请空间失败
从buf+off开始复制len长度的字符串到textPtr指向的位置
BLOCKSIZE - off len
openfilelist[fd].off += len
要读长度len减BLOCKSIZE - off
指针指向文件起始盘块号
判断要读的长度是否大于0
定义长度为MAX_TEXT_SIZE字符串数组text
blockNum == END
从头开始读
off = BLOCKSIZE
break
blockNum值为fatPtr指针指向盘块的盘块号
char *textPtr = text
blockPtr = myvhard + BLOCKSIZE*blockNum
buf == NULL
off += len
printf(\"len 长度过长,超过文件限制!\\")
定义偏移量off值为openfilelist[fd].off的值
char text[MAX_TEXT_SIZE] = \"\\0\"
fatPtr指向新的要读盘块
printf(\"do_read寻找的块不存在\\")
找下一个盘块
int off = openfilelist[fd].off
判断偏移量是否大于一个盘块
返回-1
判断文件是否存在
0 条评论
下一页
为你推荐
查看更多