Ваша команда изменяет максимальный размер буфера, а не размер по умолчанию.
Из справочной страницы pipe (7) :
/ proc / sys / fs / pipe-max-size
(начиная с Linux 2.6.35)Максимальный размер (в байтов) отдельных каналов, которые могут быть установлены пользователями без возможности CAP_SYS_RESOURCE.
и:
Начиная с Linux 2.6.11, емкость канала составляет 16 страниц (т. Е. 65 536 байт в системе с размером страницы 4096 байт). Начиная с Linux 2.6.35, емкость канала по умолчанию составляет 16 страниц, но емкость можно запросить и задать с помощью
fcntl
(2)F_GETPIPE_SZ
иF_SETPIPE_SZ
операции.
Таким образом, если вы не вызовете системный вызов fcntl (F_SETPIPE_SZ)
в открытом канале, он останется на своей емкости по умолчанию: 64 КБ. Для этого вы должны использовать язык, который предлагает привязку к системным вызовам (C / C ++, Python, PHP, perl, ... но не sh / bash).