Wenn es vollständig mit der Festplatte gefüllt ist, wird es ein späteres Festival sein, daher erkenne ich, dass es mit einem kleinen Puffer angezeigt wird, aber wie ist es eigentlich? Wenn ich es berechne, passt es nicht.
$ df /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/centos-root 30909700 14577164 16332536 48% /
Die Anzeige von df beträgt 48%, aber (use * 100) / (Used + Available)
Diese Berechnung ergibt 47%.
echo "(14577164 * 100) / (14577164 + 16332536)" | bc
47
Versuchen wir es mit Core-Utils.
df.c
case PCENT_FIELD:
case IPCENT_FIELD:
{
double pct = -1;
if (! known_value (v->used) || ! known_value (v->available))
;
else if (!v->negate_used
&& v->used <= TYPE_MAXIMUM (uintmax_t) / 100
&& v->used + v->available != 0
&& (v->used + v->available < v->used)
== v->negate_available)
{
uintmax_t u100 = v->used * 100;
uintmax_t nonroot_total = v->used + v->available;
pct = u100 / nonroot_total + (u100 % nonroot_total != 0);
}
Ist es ein Gefühl, dass es im Allgemeinen +1 ist?
Erstens gibt dieses (u100% nonroot_total! = 0)
0 oder 1 zurück.
$ cat x.c
#include <stdio.h>
int main(void)
{
printf("%d\n", (0 != 0));
printf("%d\n", (1 != 0));
}
$ gcc x.c
$ ./a.out
0
1
Recommended Posts