<sys/types.h>
タイプ関連参照では、次のようにblkcnt_t
定義されます。
blockcnt_t ファイルブロックの計算に使用されます。
また、次のように指定します。
blockcnt_toff_t は符号付き整数型でなければなりません。
(望むよりhttp://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html#tag_13_67)
ブロック数が負の理由を見つけることができないのに、なぜ符号付き型として定義されているのか疑問に思います。
私はaを使うことを想像できませんが、否定的なブロック数、blkcnt_tに割り当てることができると思います。否定的な一種のエラー/例外を表す値ですか?
興味深い事実は、blkcnt_t型がunsignedとして導入されたことです(参照ここ)次に署名に変更します(参照:ここ)。この変更の説明/理由により、次のコミットメッセージが表示されます。
"blkcnt_tとoff_tは符号付き整数型でなければなりません。"ネットワーク更新タスクのサイズ要件が負の場合、これはpacmanが失敗し、代わりに大きな正数を計算します。
答え1
署名算術をサポートしたり、署名されたブロック数の増加を保存するために署名されているようです。ねじるpacman
そしてプロンプトシグウィンパッチ言及しました。)
Linuxカーネルではまだまだ署名されていません。。
答え2
これはおそらく以前のバージョンとの互換性のためです。以前のバージョンには型がありませんでしたが、blkcnt_t
フィールドはlong
。したがって、より柔軟な仕様に移行するときは、その分野の象徴的特性を保存したい場合があります。