Sincronismo de processos assíncronos com named pipes
Colaboração: Júlio Cezar Neves
Data de Publicação: 29 de janeiro de 2018
Vamos falar hoje em named pipes. Você sabia que pode sincronizar 2 ou mais processos assíncronos, trocando informações entre eles usando esta técnica? Deixa eu te mostrar: abra 2 terminais no mesmo diretório e em um deles faça:
$ mkfifo paipi
$ ls -l paipi
prw-r--r-- 1 julio julio 0 Nov 4 18:08 paipi
Viu!? É um arquivo do tipo p
e se o seu ls
for colorido, verá que
seu nome tem uma cor de burro quando foge. Agora em um terminal escreva:
cat paipi
Calma, não se desespere! Ele não congelou (pinguim não congela, janelas congelam ;), ele está ouvindo uma ponta do named pipe, esperando que se fale algo na outra ponta. Então vamos para o outro terminal para falar. Redirecione qualquer saída para o named pipe que ela "miraculosamente" aparecerá no primeiro terminal, que a esta altura já não terá aparência de "congelado". Por exemplo, faça:
ls -l > paipi
E dessa forma podemos trocar dados entre 2 processos. Genial, não é?