fifo(7) Miscellaneous Information Manual fifo(7)

fifo - canal nomeado, primeiro a entrar último a sair

Um arquivos especial FIFO (um canal nomeado) é similar a um canal, exceto que ele é acessado como para do sistema de arquivos. Ele pode ser aberto por muitos processor para leitura ou escrita. Quando os processos estão trocando dados via o FIFO, o kernel transmite todos os dados internamente sem escreve-los no sistema de arquivos. Dessa forma, o arquivo especial FIFO não possui conteúdos no sistema de arquivos, a entrada do sistema de arquivos meramente serve como um ponto de referência de forma que processos podem acessar o canal usando um nome no sistema de arquivos.

O kernel mantem exatamente um objeto canal para cada arquivo especial FIFO que é aberto por pelo menos um processo. O FIFO deve ser de ambos os lado (leitura and escrita) antes que dados possam ser passados. Normalmente, abrindo os blocos FIFO até que o outro termine é aberto também.

A process can open a FIFO in nonblocking mode. In this case, opening for read-only succeeds even if no one has opened on the write side yet and opening for write-only fails with ENXIO (no such device or address) unless the other end has already been opened.

No Linux, abrindo um FIFO para leitura e escrita terá sucesso em ambos modos bloco e o modo que não o de bloco. O POSIX deixa este comportamento indefinido. Ele pode ser usado para abrir um FIFO para exscrita enquanto ali não estão disponíveis leituras. Um processo que usa ambas as extremidades da conexão para comunicação com si mesmo deveria ser muito cautelosa para previnir congelamentos.

For details of the semantics of I/O on FIFOs, see pipe(7).

Quando um processo testa a escrita para um FIFO que não está aberto para leitura no outro lado, o processo é enviado um sinal SIGPIPE.

FIFO special files can be created by mkfifo(3), and are indicated by ls -l with the file type 'p'.

mkfifo(1), open(2), pipe(2), sigaction(2), signal(2), socketpair(2), mkfifo(3), pipe(7)

A tradução para português brasileiro desta página man foi criada por André Luiz Fassone <lonely_wolf@ig.com.br> e Carlos Augusto Horylka <horylka@conectiva.com.br>

Esta tradução é uma documentação livre; leia a Licença Pública Geral GNU Versão 3 ou posterior para as condições de direitos autorais. Nenhuma responsabilidade é aceita.

Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para a lista de discussão de tradutores.

31 outubro 2023 Linux man-pages 6.06