PDA

Visualizza la versione completa : [C] Uniformare la funzione Sleep per Windows e Linux


Skull260287
08-10-2008, 14:10
Ciao a tutti, vorrei sapere se esiste una strada per uniformare la valutazione del tempo da parte della funzione sleep in windows, dove in millisecondi, ed in linux, dove in secondi. Io avrei pensato a scrivere un qualcosa che permetta di identificare il sistema ed associare un valore alla variabile n di _sleep(n) a seconda dei casi, ma non so come implementare questa cosa. Esiste una soluzione migliore?


Grazie per L'aiuto.

Samuele_70
08-10-2008, 20:36
Potresti usare le direttive al preprocessore


#include <cstdio>

#if defined(_WIN32)
#include <windows.h>
#define SYSTEM "Windows 32"
#define wait(x) Sleep(x*1000)
#elif defined(_LINUX)
#define SYSTEM "Linux"
#define wait(x) _sleep(x);
#else
#define SYSTEM "Altro"
#define wait(x); // Indefinita
#endif

int main()
{
printf("Sistema %s\n", SYSTEM);
wait(10);

return 0;
}

per difinire la macro wait( second ).



Altrimenti usa la


#include <dos.h>
...
void _sleep(unsigned seconds);

che sembra identica alla _sleep del Linux.

E se resa disponibile dal compilatore che usi, ovviamente.

Skull260287
14-10-2008, 20:59
Originariamente inviato da Samuele_70
Potresti usare le direttive al preprocessore


#include <cstdio>

#if defined(_WIN32)
#include <windows.h>
#define SYSTEM "Windows 32"
#define wait(x) Sleep(x*1000)
#elif defined(_LINUX)
#define SYSTEM "Linux"
#define wait(x) _sleep(x);
#else
#define SYSTEM "Altro"
#define wait(x); // Indefinita
#endif

int main()
{
printf("Sistema %s\n", SYSTEM);
wait(10);

return 0;
}

per difinire la macro wait( second ).



Altrimenti usa la


#include <dos.h>
...
void _sleep(unsigned seconds);

che sembra identica alla _sleep del Linux.

E se resa disponibile dal compilatore che usi, ovviamente.

Ciao, gentilissimo, scusa per il ritardo nella risposta, stato un casino installare ubuntu sulla virtual machine e fargli riconoscere l'hd interno o la pennetta, funziona egregiamente.

Loading