Retendo dados em um pipe nomeado após um acesso de leitura incompleto

1

Pré-requisitos:

$ mkfifo pipe1

Se várias linhas forem colocadas em pipe1

$ (echo line 1; echo line 2) > pipe1

todas as linhas podem ser lidas em outro terminal por

$ cat pipe1
line 1
line 2

Até agora tudo bem.

Mas

se em vez do último cat várias leituras parciais forem executadas

$ head -n 1 pipe1; head -n 1 pipe1
line 1

então somente a primeira linha dos dados canalizados para pipe1 é retornada (pela primeira cabeça -n 1 ); o resto dos dados parece se perder, o segundo acesso de leitura está suspenso, portanto, aguardando novos dados disponíveis em pipe1 .

Como

para configurar um conteúdo de pipe e pipe nomeado de forma que várias leituras parciais consecutivas sejam possíveis?

Em outras palavras, como conseguir isso:

$ head -n 1 pipe1; head -n 1 pipe1
line 1
line 2
    
por Min-Soo Pipefeet 20.07.2018 / 15:07

0 respostas