如何在C中为虚拟文件系统创建大型二进制文件?

时间:2012-09-04 03:50:17

标签: c file-io vfs

基本上在我的项目中我必须使用gcc在unix os上创建一个VSF。我制作了一个由元块组成的体系结构,包含文件描述符和文件块。现在,如果我必须创建一个1 GB的文件系统,我假设我的元数据将占用250KB,Headers将占用1MB,其余部分将分配给我的文件块。因为我只创建二进制文件所以我使用fread / fwrite函数将块的结构写入二进制文件。现在我想将1 GB的大小传递给我的函数,这将创建不同的块。现在我的问题是如何使用fwrite函数创建给定大小的不同块,以便相应地分配所有1GB空间?

1 个答案:

答案 0 :(得分:1)

fwrite函数的签名是

fwrite(const void * restrict ptr, size_t size, size_t nmemb,
         FILE * restrict stream);

你只需要拿出尺寸为* nmemb = 1G的数字。

如果我的问题出错了,请发表评论。