J'ai besoin de mettre mon programme en veille sous Windows. Quel fichier d'en-tête a la fonction sommeil?
Utilisation:
#include <windows.h>
Sleep(sometime_in_millisecs); // Note uppercase S
Et voici un petit exemple qui se compile avec MinGW et fait ce qu'il dit sur l'étain:
#include <windows.h>
#include <stdio.h>
int main() {
printf( "starting to sleep...\n" );
Sleep(3000); // Sleep three seconds
printf("sleep ended\n");
}
SleepEx
(voir http://msdn.Microsoft.com/en-us/library/ms686307.aspx ) est le meilleur choix si votre programme crée directement ou indirectement des fenêtres (pour exemple, utiliser certains objets COM). Dans les cas simples, vous pouvez également utiliser Sleep
.
Incluez la fonction suivante au début de votre code, chaque fois que vous voulez attendre occupé. Ceci est distinct du sommeil, car le processus utilisera 100% de processeur pendant que cette fonction est en cours d'exécution.
void sleep(unsigned int mseconds)
{
clock_t goal = mseconds + clock();
while (goal > clock())
;
}
Notez que le nom sleep
pour cette fonction est trompeur, car le CPU ne dormira pas du tout.
MSDN : En-tête: Winbase.h (inclure Windows.h)