У меня есть следующее:
#
# Decrease swap usage to a workable level
vm.swappiness=10
# Improve cache management
vm.vfs_cache_pressure=50
Я думаю, вы можете просто использовать «0» вместо моего «10», но это должно работать.
В дополнение к ответу @muru, вот часть исходного кода, которая вычисляет width для правильного выравнивания вывода. :
static void
format_user_or_group (char const *name, unsigned long int id, int width)
{
size_t len;
if (name)
{
int width_gap = width - mbswidth (name, 0);
int pad = MAX (0, width_gap);
fputs (name, stdout);
len = strlen (name) + pad;
do
putchar (' ');
while (pad--);
}
else
{
printf ("%*lu ", width, id);
len = width;
}
dired_pos += len + 1;
}
Используется, printf ("%*lu ", width, id);. ПРИМЕЧАНИЕ: спецификатор ширины поля переменной '*'
В этом случае нельзя предсказать, насколько велика ширина поля, в которой мы будем нуждаться, когда ls -l выполняется, то есть имена каталогов могут различаться по длине. Это означает, что сама ширина поля должна быть ПРИМЕЧАНИЕ: , для которой программа будет вычислять значение.
C использует программу , вычисленное значение в позиции спецификатора ширины поля, чтобы указать printf, что он найдет переменную, которая содержит значение ширины поля в качестве дополнительного параметра.
Например, предположим, что текущее значение ширины равно 5. Инструкция:
printf ("%*d%*d\n", width, 10, width, 11);
будет печатать: (обратите внимание на интервал)
10 11