shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] lance estranho (agora eh pipe)


From: Jose NIEVIADONSKI
Subject: Re: [shell-script] lance estranho (agora eh pipe)
Date: Thu, 20 Mar 2003 15:36:39 -0300

Pessoal

O UNIX permite que você crie um arquivo em disco do tipo PIPE que possui um
tratamento ESPECIAL pelo UNIX.

Esse arquivo também é chamado de "named pipe" pois tem a mesma
característica de um pipe comum (daqueles cmd1 | cmd2) mas possui um nome
no file system.

Agora o principal para entender o arquivo PIPE é que nada será "gravado" no
arquivo, sendo somente um ponto de localização (nome) no file system
permitindo assim que se rode um ou mais processos (comandos, utilitários,
etc) usando esse arquivo como ponto de gravação ou leitura.

Características de um arquivo PIPE (também chamado de FIFO)

1. Um processo que realizar via função 'open' uma abertura para leitura
(O_RDONLY) irá ficar travado até que exista um outro processo que realize a
abertura desse arquivo para gravação (O_WRONLY).

2. Um processo que realize uma abertura para leitura (O_WRONLY) irá também
travar até que algum outro processo abra o arquivo para leitura (O_RDONLY).

Devido a isso pode-se sincronizar facilmente dois processos independentes
usando o arquivo pipe
veja o exemplo

#criando o pipe
mkfifo /tmp/xpto
sort -n -k 1 /tmp/xpto

nesse momento o processo sort "trava" pois não existe nenhum processo que
abriu o pipe para gravação.

em outro shell vamos executar o seguinte comando

du /home >/tmp/xpto

Esse processo abre o arquivo e começa a gravar as informações. O UNIX
"acorda" o processo sort que começa a ler as informações "gravadas".

O processo que está lendo agora o pipe irá retornar EOF (fim de arquivo)
somente se todos os processos que gravam no PIPE realizarem o fechamento do
mesmo (via close). Quando o processo du fechar o arquivo, o processo sort
temrina também por EOF a sua leitura.

Espero que tenha iniciado uma boa explicação sobre o PIPE, mas como tenho
que voltar a dar um cursinho de ksh aqui no Banco, não posso entrar em
maiores detalhes sobre o PIPE. Existem outros exemplos interessantes a
discutir...)

P.S> È possível uma configuração de varios gravando e somente um lendo,
etc,etc,etc.

Caso alguem queira saber mais, favor se pronunciar.

José Augusto Martins Nieviadonski
Analista de Sistemas Consultor
HSBC Bank Brasil S.A. - Banco Múltiplo
Treinamento de informática
Fone : 41 340-5378 - Fax : 41 340-5011


      Para: <address@hidden>
      cc:
      cco:  Jose NIEVIADONSKI/HBBR/HSBC
      Assunto:    Re: [shell-script] lance estranho (agora eh pipe)
"thakilar" <address@hidden>

20/03/2003 02:44 PM
Favor responder a shell-script            <font size=-1></font>

> É sobre PIPE ou PINE????
É sobre PIPE aqueles arquivos do UNIX que você manda a saí para outro
programa. Muito poderoso esse recurso e estou interessadissímo e usá-lo.

Obrigado pel atenção.
--

wendel - Gerente de Projetos
DotPix ASP/Con, Ltd.
http://www.dotpix.com.br




This E-mail confidential. It may also be legally privileged. If you are not the 
addressee you may not copy, forward, disclose or use any part of it. If you 
have received this message in error, please delete it and all copies from your 
system and notify the sender immediately by return E-mail.
Internet communications cannot be guaranteed to be timely, secure, error or 
virus-free. The sender does not accept liability for any errors or omissions.
 
Esta mensagem pode conter informação confidencial e/ou privilegiada. Se você 
não for o destinatário ou a pessoa autorizada a receber esta mensagem, não pode 
usar, copiar ou divulgar as informações nela contidas ou tomar qualquer ação 
baseada nessas informações. Se você recebeu esta mensagem por engano, por favor 
avise imediatamente o remetente, respondendo o e-mail e em seguida apague-o.
Comunicações pela Internet não podem ser garantidas quanto à segurança ou 
inexistência de erros, ou contendo vírus. O remetente por esta razão não aceita 
responsabilidade por qualquer erro ou omissão no contexto da mensagem 
decorrente da transmissão via Internet.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]