なぜ?ブロック数を測定する場合はblkcnt_t符号付き値ですか?

なぜ?ブロック数を測定する場合はblkcnt_t符号付き値ですか?

<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カーネルではまだまだ署名されていません。

おすすめ記事