【问题标题】:How to create a large binary file in C for Virtual File System?如何在 C 中为虚拟文件系统创建一个大型二进制文件?
【发布时间】:2023-03-18 06:03:01
【问题描述】:

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

【问题讨论】:

    标签: c file-io vfs


    【解决方案1】:

    fwrite 函数的签名是

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

    你只需要选择size*nmemb = 1G的数字。

    如果我的问题有误,请发表评论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-25
      相关资源
      最近更新 更多