c - 如何使用 c 获取使用 dd 命令创建的文件的大小

标签 c linux file-io dd

我使用 dd 命令创建一个文件,如下所示:

dd if=/dev/zero of=1g.dd bs=1M count=512 seek=512

当我运行命令ls 1g.dd,它的大小是1G,运行du 1g.dd,它是512M。

c 库中有一个struct stat 可以读取文件大小,但它只能读取1G 大小,现在我如何获得512M 大小,即该文件的实际大小?

现在我知道的唯一方法是解析 shell 命令 du 的输出。我可以直接从文件中读出大小吗?

最佳答案

为此,您可以使用 struct statst_blocks 成员,它会告诉您有多少个 512 字节 block (这在 Linux 上有效,在其他操作系统上可能有所不同,并且可能取决于文件系统)已分配给文件。

关于c - 如何使用 c 获取使用 dd 命令创建的文件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14009478/

相关文章:

database - 如何将视频存储在 PostgreSQL 数据库中?

c++ - 显示 RGB888 内容

在 C 中创建一个字符串数组失败,为什么?

linux - 如何使 https 可用于 linux 服务器中的客户端

php - 需要在托管服务器上为我的 php 文件运行 cron 作业

r - 在 centos(64 位)上安装 rJava。找不到 lpcre、llzma

file - 如何使用 Haskell 分割 110Mo 文件

java - 从多个文本文件中读取数据

c - 打印到控制台后自动插入 EOF

c - 使用 rand() 时输出范围内的随机数