Можно ли подключиться к dirsplit?

Это ограничение не для grep , а для / proc / PID / cmdline (технически проектное решение, а не ограничение). / proc / PID / cmdline содержит полную командную строку процесса с основной командой и аргументами, разделенными ASCII NUL, и файл заканчивается также NUL. Итак, grep распечатает все содержимое файла, если есть совпадение. ( ps -ef получает содержимое этого файла как CMD ).

Максимальная длина жестко запрограммирована в ядре (Linux) на PAGE_SIZE :

static int proc_pid_cmdline(struct task_struct *task, char * buffer)
{
        int res = 0;
        unsigned int len;
        struct mm_struct *mm = get_task_mm(task);
        if (!mm)
                goto out;
        if (!mm->arg_end)
                goto out_mm;    /* Shh! No looking before we're done */

        len = mm->arg_end - mm->arg_start;

        if (len > PAGE_SIZE)
                len = PAGE_SIZE;

, следовательно, 4096 байт для такой системы:

% getconf PAGE_SIZE
4096

Кроме того, если у вас есть многобайтовые символы, количество символов будет меньше 4096, как вы понимаете.

1
01.06.2016, 05:41
0 ответов

Теги

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