Проблемы с выполнением программы в Perl

«Дополнительные блоки» появились не из-за какой-то несогласованности в конфигурации. (Гипотетически это всегда может быть неправильно по какой-то другой причине. Как космические лучи, которые испортили код вашего ядра :-)).

Я говорю это потому, что нет возможности вручную настроить детали расчета использования диска для этих команд. Команды только преобразуют использование диска в другие единицы путем умножения или деления. Использование диска можно получить, вызвав системный вызов stat (). Ядро возвращает несколько синтетических «блоков», которые всегда имеют размер 512 байт. Также нет никаких параметров ядра, влияющих на то, как stat ()вычисляет количество блоков.

Я могу сказать вам, что блок, содержащий inode, не должен учитываться в вашей файловой системе ext4. В целом, Джайлз говорит, что это не учитывается ни в одной из известных ему файловых систем. Возможно, отчасти из-за поднятого вами вопроса :-). Иноды, как правило, меньше, чем 512 -байтовых блоков, о которых сообщает stat. ext4 по умолчанию имеет 256 -байтовых инодов; ext3 по умолчанию имеет размер 128 байт.

Если мы просмотрим соответствующие вопросы (правую боковую панель ), мы заметим один случай, когда могут быть дополнительные блоки. Дерево экстентов (или косвенные блоки, если экстенты отключены ), считаются на ext4.(Почему разница в размере файла и его размера на диске превышает 4 КиБ?)

Второй ответ на связанный вопрос предполагает другой случай. Некоторые варианты использования fallocate ()могут позволить создавать файлы со сколь угодно большой разницей между их размером и количеством выделенных для них блоков.

Тем не менее, я подозреваю, что вышеизложенного недостаточно, чтобы объяснить любой из ваших примеров.

-3
13.03.2021, 05:14
1 ответ

См. отбивная

Chops off the last character of a string and returns the character chopped.

. он изменяет строку на месте -.

Вы предполагаете, что он возвращает "обрезанную строку".

#!/usr/bin/perl -w

my $x = "Turing, Alana";

my $r = chop($x);

print "\$x is now '$x', and \$r is now '$r'\n";

Тогда:

$x is now 'Turing, Alan', and $r is now 'a'
1
18.03.2021, 22:25

Теги

Похожие вопросы