Escrevendo um serviço em C: Como passar e processar argumentos para executar o serviço?

1

Eu quero escrever um serviço em C.

Enquanto este serviço está sendo executado em segundo plano e processando algumas informações, eu preciso pegar os resultados deste serviço de outros aplicativos ou da linha de comando.

Antecedentes: Eu preciso de um aplicativo / serviço C devido a problemas de desempenho. A interface do usuário será implementada em uma linguagem superior, como Java ou C # / Mono no Linux. O aplicativo C basicamente processará dados, que virão de outra fonte. A camada de interface do usuário deve ser capaz de capturar os resultados em um loop a cada poucos milissegundos, por exemplo, e exibi-los ao usuário. Também deve ser possível pausar / iniciar / configurar o serviço a partir do aplicativo Java. É aí que a questão começa.

Como faço para implementar o serviço em C, para que ele possa responder aos comandos em tempo de execução?

Obrigado Eduard

    
por Eduard 15.12.2012 / 15:09

1 resposta

2

Se você deseja separar um serviço e sua IU, você precisa de algum tipo de mecanismo IPC para torná-los comunicar. Vários deles existem, mas o padrão em sistemas baseados em linux atualmente é o D-Bus, que pode ser usado para acessar um serviço escrito em C a partir de um cliente escrito em qualquer linguagem que possua ligações D-Bus (Java e Mono possuem ). Seu serviço deve fornecer um serviço D-Bus para o cliente ligar. O D-Bus também oferece uma maneira de iniciar automaticamente os serviços. Parar e configurar podem ser facilmente implementados.

Eu não faria sua interface pegar resultados a cada milissegundos, já que humanos não podem processar informações rapidamente. Uma taxa de atualização de 25 a 30 vezes por segundo deve ser mais que suficiente.

    
por 15.12.2012 / 20:53

Tags