1

我使用 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的输出。我可以直接从文件中读出大小吗?

4

1 回答 1

1

你可以使用 的st_blocks成员struct stat,它告诉你有多少 512 字节块(这在 Linux 上有效,在其他操作系统上可能不同,并且可能取决于文件系统)已分配给文件。

于 2012-12-23T07:57:29.530 回答