Oppure

Loading
10/06/11 16:58
Alex
Ciao a tutti,

in un programma in C ho la necessità di eseguire una funzione una volta ogni x minuti,se accade una determinata condizione (un flag che si alza) mentre il resto del programma va avanti.

può essere una soluzione creare un altro processo e con la funzione sleep aspettare x minuti e poi chiamare la funzione o c'è un sistema migliore per farlo? (lavoro su linux)

.
.
.
if(flag)
   if(fork()==0){
      sleep(100);
      funzione();
}
.
.
.
Ultima modifica effettuata da Alex 10/06/11 16:59
aaa
19/06/11 15:07
comina8
Un approccio un po' diverso ma con lo stesso risultato sarebbe
creare un thread in cui (come dicevi giustamente tu) inserire uno sleep
e poi la chiamata tipo:


... funzione()
{
   while(condizione_per_far_continuare)
       {
            Sleep(x);
            funzione_da_eseguire_ogni_x_min(...);
       }
}

...
pthread_create(...funzione...);
...

aaa
20/06/11 19:34
Alex
mi piace di più il tuo sistema..grazie mille!
aaa
03/08/11 12:15
ManfroC
Se usi windows ti puoi agganciare all'orologio di sistema e fare in modo che ogni 3 minuti scatti la funzione...tipo..


#include <windows>

SYSTEMTIME time;
int app;

int main ( int argc , char *argv[] )
{
GetLocalTime(time,0);

app=time.wMinute+3;

while
{
if ( time.wMinute == app )
{
app = time.wMinute+3;
isruzioni
}

}
return 0;
}

aaa