Programm x Sekunden laufen lassen
-
das war jetzt aber nicht gerade konkret, SideWinder!
-
DrGreenthumb schrieb:
das war jetzt aber nicht gerade konkret, SideWinder!
...und ohne Quelltext!
-
so eine schweinerein aber auch! Side, ich bin wirklich zutiefst erschüttert!
-
OK, dann geb ich jetzt mal ein Beispiel ohne Erklärung:
#include <pthread.h> #include <stdio.h> struct timer_thread_ctl { int interrupt; unsigned seconds; }; void *timer_thread(void *param) { struct timer_thread_ctl *ctl = param; sleep(ctl->seconds); ctl->interrupt = 1; } int main(void) { pthread_t timer_th; struct timer_thread_ctl th_ctl = { 0, 5 }; pthread_create(&timer_th, NULL, timer_thread, &th_ctl); while(!th_ctl.interrupt) { puts("Hallo!"); sleep(1); } return 0; }
-
Warum nicht einfach beim Programmstart die Zeit auslesen, speichern und dann regelmäßig die Zeit wieder abfragen und Differenz vergleichen?
-
@ Drucktaste:
Genau vor dem Problem steh ich. Kann mir vielleicht jemand erklären, wie man Zeit speichert und dann regelmäßig die Differenz vergleicht? Denke das sollte mit einem Array gehen, oder?
-
time_t anfang; anfang = time(0); time_t now = time(0); int zeitspanne; // zeit in secunden while(difftime(anfang,now)<zeitspanne) { now=time(0); // programmcode }
*HOPING that that will work*
mfG (c)h
-
Ich würde mich hier auf mein Betriebssystem verlassen und Funktionen von diesem aufrufen.
In Windows wäre dies ein einfaches SetTimer (x); und dann einfach auf die WM_TIMER Nachricht warten, wenn diese kommt beendest du das Programm, dann ist es nur x Sekunden gelaufen.
-
@ chille07
Danke, du hattest nur einen kleinen Fehler. Es müsste difftime(now,anfang) heissen.
-
Auf welche Bibliothek greift denn sleep zurück..... ?
Der verlangt bei mir irgendeine Bibliotheks-Datei und ich hab da keine Ahnung, welche ich davon nehmen muss bzw soll.
-
cHillb3rT schrieb:
Auf welche Bibliothek greift denn sleep zurück..... ?
Der verlangt bei mir irgendeine Bibliotheks-Datei und ich hab da keine Ahnung, welche ich davon nehmen muss bzw soll.
windows:
Sleep schreibt man groß.
Die Headerdatei heisst <windows.h>mfG (c)h
-
pippo schrieb:
@ chille07
Danke, du hattest nur einen kleinen Fehler. Es müsste difftime(now,anfang) heissen.
ja... stimmt!
thanx (c)h