gpt4 book ai didi

c - 虚拟文件系统内存块创建

转载 作者:行者123 更新时间:2023-11-30 17:02:14 24 4
gpt4 key购买 nike

我正在开发一个项目,需要为虚拟文件系统创建所有基本组件(内存块、文件名表、 inode 等)。我的系统需要能够制作一个由固定内存块(在本例中为 256 字节)组成的单层(无子目录)“磁盘”。我了解使用文件系统的所有基本组件及其功能,但我不确定如何开始创建内存块进行分配。我还没有为 inode 或文件表设计结构(我需要提出自己的结构),但我相信我已经设置了基本的内存分配来制作“磁盘”,然后我可以在其中格式化和添加后续数据结构:

int make_disk(char const *name)
{
int c, dex;
char buff[BLOKSIZE];

if(!name)
{
fprintf(stderr, "Make: Invalid Name\n");
return -1;
}
if((c=open(name, O_WRONLY | O_CREAT | O_TRUNC, 0644)) < 0)
{
perror("Cannot Open File\n");
return -1;
}

memset(buff, 0, BLOKSIZE);
for(dex=0;dex<NUMBLOKS;dex++)
{
write(c, buff, BLOKSIZE);
}

close(c);
return 0;

}

我的主要问题是,一旦该“磁盘”正确分区,我是否正确分配了将用于文件存储和元数据存储的 256 字节内存块?

最佳答案

最好的选择是使用内存映射文件作为虚拟磁盘。

关于c - 虚拟文件系统内存块创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36637504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com