Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C中为虚拟文件系统创建大型二进制文件?_C_File Io_Vfs - Fatal编程技术网

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

如何在C中为虚拟文件系统创建大型二进制文件?,c,file-io,vfs,C,File Io,Vfs,基本上,在我的项目中,我必须使用gcc在unix操作系统上创建VSF。我制作了一个由元块、包含文件描述符的头和文件块组成的体系结构。现在,如果我必须创建一个1 GB的文件系统,我假设我的meta将占用250KB,header将占用1MB,其余的将分配给我的文件块。因为我只创建二进制文件,所以我使用fread/fwrite函数将块的结构写入二进制文件。现在,我想将大小为1GB的数据传递给我的函数,该函数将创建不同的块。现在我的问题是如何使用fwrite函数创建给定大小的不同块,以便所有1GB空间都

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

fwrite函数的签名是

fwrite(const void * restrict ptr, size_t size, size_t nmemb,
         FILE * restrict stream);
您只需要选择大小为*nmemb=1G的数字

如果我错了你的问题,请评论