Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] Uniformare la funzione Sleep per Windows e Linux

    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.
    MondoLibero: Informazione Libera, Varia ed Eventuale
    Sito di informazione varia ed eventuale. Quando ho voglia scrivo di ciò che mi pare. Pubblico guide, recensioni, notizie, critiche e tutto ciò che mi passa sotto mano e che penso sia interessante.

  2. #2
    Potresti usare le direttive al preprocessore
    codice:
    #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
    codice:
    #include <dos.h>
    ...
    void _sleep(unsigned seconds);
    che sembra identica alla _sleep del Linux.

    E se è resa disponibile dal compilatore che usi, ovviamente.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  3. #3
    Originariamente inviato da Samuele_70
    Potresti usare le direttive al preprocessore
    codice:
    #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
    codice:
    #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.
    MondoLibero: Informazione Libera, Varia ed Eventuale
    Sito di informazione varia ed eventuale. Quando ho voglia scrivo di ciò che mi pare. Pubblico guide, recensioni, notizie, critiche e tutto ciò che mi passa sotto mano e che penso sia interessante.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.