我使用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
的输出。我可以直接从文件中读出大小吗?
答案 0 :(得分:1)
你可以使用st_blocks
struct stat
成员,它告诉你有多少512字节块(这在Linux上有效,在其他操作系统上可能有所不同,并且可能取决于文件系统)已被分配到该文件。