エラーを報告するヒューズファイルシステムをデバッグしていましたが、わかりましたら[*]を構造にdu
入れました。 Linux のマニュアルページには次のように記載されています。st_size / st_blksize
st_blocks
stat
stat(2)
struct stat {
…
off_t st_size; /* total size, in bytes */
blksize_t st_blksize; /* blocksize for file system I/O */
blkcnt_t st_blocks; /* number of 512B blocks allocated */
…
};
st_blksize
st_blocks
ブロック512Bに配置した場合の用途は何ですか?
[*]整数除算は少数の部分を考慮していないので、これはとにかく間違っているようです...
ベストアンサー1
st_blocks
はい限られた〜のように
このオブジェクトに割り当てられたブロックの数。
チャンクのサイズは実装によって異なります。 Linuxでは、歴史的な理由から常に512バイトです。特に以前はディスクセクタの一般的なサイズでした。
st_blksize
関係ありません。
このオブジェクトのファイルシステム固有のデフォルトI / Oブロックサイズ。一部の種類のファイルシステムでは、ファイルによって異なる場合があります。
I/O に好ましいサイズを示します。つまり最良の結果を得るために、1回の操作で送信する必要があるデータ量(I / Oスタックの他のレイヤーを無視)。