Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我使用 dd 命令创建一个文件,如下所示:
dd if=/dev/zero of=1g.dd bs=1M count=512 seek=512
当我运行命令时ls 1g.dd,它的大小是 1G,运行du 1g.dd,它是 512M。
ls 1g.dd
du 1g.dd
c 库中有一个struct stat读取文件大小的库,但它只能读出 1G 大小,现在我怎样才能得到 512M 大小,这是该文件的实际大小?
struct stat
现在我知道的唯一方法是解析 shell 命令du的输出。我可以直接从文件中读出大小吗?
du
你可以使用 的st_blocks成员struct stat,它告诉你有多少 512 字节块(这在 Linux 上有效,在其他操作系统上可能不同,并且可能取决于文件系统)已分配给文件。
st_blocks