===== Frage #8 ===== ** Wie kann ich die Ausführung meines Programmes für eine bestimmte Zeit lang unterbrechen? ** ===== Antwort: ===== Mit der Funktion ''sleep'' unter POSIX Systemen (Unix, Linux...) und mit ''Sleep'' unter Windows. #include unsigned sleep( unsigned seconds ); #include void Sleep( DWORD Milliseconds ); Beachten müsst ihr, dass die POSIX Variante ''sleep'' eine Angabe in Sekunden, die Windows Variante ''Sleep'' eine Angabe in Millisekunden erwartet. Die Funktionsweise hinter den beiden Funktionen ist jedoch gleich: Die Ausführung des aktuellen Threads wird unterbrochen, in diesem Fall kann man wirklich von "schlafen" sprechen. Aus diesem Grund benutzt ''sleep'' wie auch ''Sleep'' nicht innerhalb von Ereignisschleifen, wie sie in diversen GUI-Toolkits vorhanden sind. Denn während der Thread schläft werden keine Signale mehr empfangen und die Anwendung "friert ein". ===== Kleines Beispiel ===== POSIX #include #include int main(int argc, char* argv[]) { printf("Hallo!, in 5 Sekunden wird dieses Programm beendet...\n"); sleep(5); printf("Ende\n"); return 0; } Windows #include #include int main(int argc, char* argv[]) { printf("Hallo!, in 5 Sekunden wird dieses Programm beendet...\n"); Sleep(5000); printf("Ende\n"); return 0; } ===== Navigation ===== Zurück zur [[c:faq|FAQ-Übersicht]]