Cria um arquivo cujo conteúdo é manipulado por um programa

2

Eu quero criar um arquivo especial, do qual o conteúdo será gerado na leitura e processado no momento da gravação. Deve haver um processo em segundo plano manipulando o arquivo. Um tubo não é preferido, pois nunca permite dual-band (r / w simultaneamente). Dois pipes nomeados parecem bons, mas são dois arquivos, não um. O que eu quero é muito parecido com um arquivo de dispositivo de caractere ou aqueles materiais em /sys . Como posso fazer isso?

    
por iBug 09.03.2017 / 05:43

1 resposta

2

Contanto que você queira apenas ler e gravar streams (um caractere após o outro), você pode usar um pseudoterminal . Isso basicamente funciona como um pipe de dois lados, onde apenas um lado ("escravo") é visível no sistema de arquivos (como /dev/pts/X ), e o outro lado ("mestre") é visível para o programa que o criou. Tem algumas coisas adicionais, como disciplina de linha e parâmetros seriais no topo, que você pode simplesmente ignorar.

Existem duas maneiras de criar pseudo-terminais, o mais moderno é usar openpty e, em seguida, select no lado mestre. Veja man openpty para detalhes. O Google deve mostrar alguns programas de exemplo.

    
por 09.03.2017 / 09:37