Одним из канонических инструментов для этого является pdfinfo
, который, если я помню, поставляется с xpdf. Пример вывода:
[0 1017 17:10:17] ~/temp % pdfinfo test.pdf
Creator: TeX
Producer: pdfTeX-1.40.14
CreationDate: Sun May 18 09:53:06 2014
ModDate: Sun May 18 09:53:06 2014
Tagged: no
Form: none
Pages: 1
Encrypted: no
Page size: 595.276 x 841.89 pts (A4)
Page rot: 0
File size: 19700 bytes
Optimized: no
PDF version: 1.5
Это не просто «округление». dfc
(и di
) выводят значение, округленное до ближайшего представления в цифрах, а df
округляет в большую сторону.
Вопрос не указывает версию coreutils; Я отвечаю на основе версии 8.13 (в Debian 7), хотя я вижу тот же результат в версии 8.25.
Начните с параметра -h
в df.c
:
case 'h':
human_output_opts = human_autoscale | human_SI | human_base_1024;
output_block_size = 1;
break;
В gnulib's "human.c" ( humblock есть дополнительный код ]), где он решает, какой тип округления использовать. Поскольку параметры человека не изменяются, используется потолок , а не пол или округление до ближайшего значения. Это потому, что ноль является значением перечисления для потолка:
/* Unless otherwise specified these options may be ORed together. */
/* The following three options are mutually exclusive. */
/* Round to plus infinity (default). */
human_ceiling = 0,
/* Round to nearest, ties to even. */
human_round_to_nearest = 1,
/* Round to minus infinity. */
human_floor = 2,