我使用 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 stat
的 st_blocks
成员,它会告诉您有多少个 512 字节 block (这在 Linux 上有效,在其他操作系统上可能有所不同,并且可能取决于文件系统)已分配给文件。
关于c - 如何使用 c 获取使用 dd 命令创建的文件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14009478/