1

次のように dd コマンドを使用してファイルを作成します。

dd if=/dev/zero of=1g.dd bs=1M count=512 seek=512

コマンドを実行するls 1g.ddと、そのサイズは1G、実行du 1g.dd、512Mです。

ファイルサイズを読み取るための in C ライブラリがありstruct statますが、その 1G サイズしか読み取ることができません。そのファイルの実際のサイズである 512M サイズを取得するにはどうすればよいですか?

今私が知っている唯一の方法は、シェルコマンドduの出力を解析することです。ファイルから直接サイズを読み取ることはできますか?

4

1 に答える 1

1

st_blocksのメンバーを使用するstruct statと、ファイルに割り当てられた 512 バイト ブロックの数 (これは Linux で有効ですが、他の OS では異なる可能性があり、ファイルシステムに依存する可能性があります) がわかります。

于 2012-12-23T07:57:29.530 に答える