PDA

View Full Version : funzione di attesa per decimi di secondo!


michele.t
15-11-2003, 20:08
ciao a tutti, sto cercando un modo di mettere un programma in attesa per intervalli inferiori al secondo (valori medi di circa .4/.5 secondi)...
la funzione aspetta(int) qui sotto funziona perfettamente se voglio fare attendere il programma per multipli di un secondo.


void aspetta ( int secondi )
{
clock_t fine;
fine = clock() + secondi * 1000000;
while (clock() < fine) {}
}


dopo un'accurata ricerca su google, mi sono arreso:muro: . penso di aver capito il problema: clock_t è un intero, non un double come serve a me! non so proprio come poter passare secondi come double...:bimbo:

ps: il valore 1000000 è CLK_TCK.

ciao, michele

cionci
15-11-2003, 21:21
Questa è un'attesa attiva...non è mai consigliabile usarla perchè occupa la CPU al 100%...
Per fare questa operazione si usano solitamente le API del sistema operativo...in modo da mettere il processo nella lista dei processi in attesa...
Per Windows c'è Sleep...per Linux mi sembra sleep... ricevono il numero di millisecondi di attesa...

michele.t
16-11-2003, 11:59
grazie mille cionci! alla fine ho risolto con nanosleep! funziona alla perfezione!
ciao e buon we, michele