如何在C中为虚拟文件系统创建大型二进制文件?
基本上,在我的项目中,我必须使用gcc在unix操作系统上创建VSF。我制作了一个由元块、包含文件描述符的头和文件块组成的体系结构。现在,如果我必须创建一个1 GB的文件系统,我假设我的meta将占用250KB,header将占用1MB,其余的将分配给我的文件块。因为我只创建二进制文件,所以我使用fread/fwrite函数将块的结构写入二进制文件。现在,我想将大小为1GB的数据传递给我的函数,该函数将创建不同的块。现在我的问题是如何使用fwrite函数创建给定大小的不同块,以便所有1GB空间都相应地分布?fwrite函数的签名是如何在C中为虚拟文件系统创建大型二进制文件?,c,file-io,vfs,C,File Io,Vfs,基本上,在我的项目中,我必须使用gcc在unix操作系统上创建VSF。我制作了一个由元块、包含文件描述符的头和文件块组成的体系结构。现在,如果我必须创建一个1 GB的文件系统,我假设我的meta将占用250KB,header将占用1MB,其余的将分配给我的文件块。因为我只创建二进制文件,所以我使用fread/fwrite函数将块的结构写入二进制文件。现在,我想将大小为1GB的数据传递给我的函数,该函数将创建不同的块。现在我的问题是如何使用fwrite函数创建给定大小的不同块,以便所有1GB空间都
fwrite(const void * restrict ptr, size_t size, size_t nmemb,
FILE * restrict stream);
您只需要选择大小为*nmemb=1G的数字
如果我错了你的问题,请评论