Emulando um arquivo

3

Eu tenho certos aplicativos que abrem um arquivo com determinado caminho (presumivelmente com fopen ou derivativo), lê o arquivo, possivelmente grava nele e o fecha. Eu não tenho controle sobre esse aplicativo além de especificar o caminho.

O que eu estou tentando fazer é 'emular' um arquivo dentro do sistema de arquivos local para passá-lo para o aplicativo. Ou seja, eu quero que o arquivo apareça como um arquivo comum no sistema de arquivos, no entanto, os fluxos são redirecionados para outro aplicativo que os manipule corretamente e produza os dados apropriados. Essencialmente, quero criar um pseudo-dispositivo, exceto que não é um dispositivo. Isso é factível? Como eu abordaria esse problema?

    
por norfavrell 27.01.2013 / 22:05

1 resposta

4

Soa como o que você quer é um pipe nomeado, que você pode criar com mkfifo(1) . Crie o pipe nomeado com o nome daquele que você deseja "emular". Em seguida, inicie o 'outro aplicativo' e, finalmente, inicie o que você não tem controle. Você precisa que o 'outro aplicativo' se comporte adequadamente - para se comunicar com o primeiro aplicativo da maneira esperada. Por exemplo, para ter dados disponíveis para o primeiro e depois esperar pelos dados do primeiro.

    
por 27.01.2013 / 22:10