O processo será capaz de escrever PIPE_BUF
bytes (veja linux/limits.h
) no pipe. Então ficará preso, até que alguns dos dados sejam lidos.
Os dados armazenados em buffer serão mantidos contanto que pelo menos uma extremidade do canal esteja aberta - não há "tempo limite" ou algo assim. Os buffers são mantidos na memória, no entanto, e não persistem na reinicialização.
Veja a pipe(7)
página de manual, especialmente a seção "Capacidade de tubulação", para mais informações.
A pipe has a limited capacity. If the pipe is full, then a
write(2)
will block or fail, depending on whether the O_NONBLOCK flag is set (see below).[...] Since Linux 2.6.11, the pipe capacity is 65536 bytes.