Pular para o conteúdo

Programa que sai na hora certa [RESOLVIDO]

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. Programa que sai na hora certa [RESOLVIDO]

Enviado em 13/08/2013 - 01:20h

Fala aí galera do VOL

Preciso fazer um programinha em C que fica repetidamente executando uma mesma tarefa, cada tarefa pode levar de alguns segundos até uns 3 minutos.

Quando eu quiser sair o programa não pode sair a qualquer momento, eu gostaria de enviar algum sinal de desligamento e o programa só sairia quando teminasse a tarefa que estivesse fazendo. Alguém poderia me dar a direção de como fazer isso?

Obrigado

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. Re: Programa que sai na hora certa [RESOLVIDO]

Melhor resposta

Enviado em 13/08/2013 - 02:52h

Existem várias formas de fazer isso que você falou. Porém, seria interessante você dar mais detalhes sobre como as tarefas serão executadas (várias em paralelo, uma de cada vez, tempo de pausa entre elas etc.), se as tarefas tem de executar como threads num mesmo processo ou como processos filhos distintos, e em qual sistema operacional quer fazer isso (UNIX, Windows, MacOS, Android etc.), pois essas informações ajudam a escolher a melhor abordagem.

Técnicas que podem ser usadas: sinais, comunicação via sockets, fifos (named pipes), memória compartilhada, semáforos, ou mesmo a simples existência de um determinado arquivo (que poderia ser criado/removido manualmente ou por outro programa).

No mundo UNIX, o utilitário cron faz algo parecido, agendando até várias tarefas simultâneas, cada uma no seu próprio processo separado, e o programa pode terminar com o simples envio de um sinal de terminação para o seu processo.

3. Re: Programa que sai na hora certa [RESOLVIDO]

Enviado em 13/08/2013 - 10:28h

As tarefas são executadas uma de cada vez e existe um tempo de pausa entre elas de aproximadamente 8 segundos. Quero fazer isso no linux e as tarefas podem ser executadas em um ou vários processos, isso é indiferente.

Eu acabei tentando usar um arquivo desta forma:

#include<stdio.h>
int main(){

FILE *arq;
char c;

arq=fopen("controle","w+");

while(1){

//fazer_tarefa(parametro);

fflush(arq);
c=fgetc(arq);

if(c=='e'){
fclose(arq);
return 0;
}
}

}

aí seria só digitar "e" no arquivo controle e salvar que o programa sairia, mas por algum motivo isso não funciona.

Obrigado pelas técnicas que citou, vou pesquisar melhor que alguma delas vai servir, já é uma direção.

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder