next up previous
Next: Particularidades dos tubos Up: Os tubos ou pipes Previous: Os tubos ou pipes

Introdução

Os tubos (ou pipes) constituem um mecanismo fundamental de comunicação unidirecional entre processos. Eles são um mecanismo de I/O com duas extremidades, ou socketc, correspondendo na verdade a filas de caractereres do tipo FIFO (First In First Out): as informações são introduzidas numa das extremidades (num socket) e retiradas em outra (outro socket). Por exemplo, quando o usuário executa o comando shell prog1|prog2, está se fazendo o chamado ''piping'' entre a saída de um programa prog1 para a entrada de outro prog2.

Os tubos são implementados como arquivos (eles possuem um i-node na tabela de indexação), mesmo se eles não têm um nome definido no sistema. Assim, o programa especifica sua entrada e sua saída somente como um descritor na tabela de índices, o qual aparece como uma variável ou constante, podendo a fonte (entrada) e o destino (saída) serem alteradas sem que para isso o texto do programa tenha que ser alterado. No caso do exemplo, na execução de prog1 a saída padrão (stdout) é substituída pela entrada do tubo. No prog2, de maneira similar, a entrada padrão (stdin) é substituída pela saída de prog1.

A técnica dos tubos é freqüentemente utilizada nos shells para redirecionar a saída padrão de um comando para a entrada de um outro.


next up previous
Next: Particularidades dos tubos Up: Os tubos ou pipes Previous: Os tubos ou pipes
Celso Alberto Saibel Santos 2000-11-14