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

时间:2012-12-23 07:50:14

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

1 个答案:

答案 0 :(得分:1)

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