2016-12-04 2 views
0

Wie kann ich <time.h> verwenden, um eine Simulation nach einem vordefinierten Zeitraum zu starten und zu beenden?Timer-Simulation in C?

Zum Beispiel:

#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

int main() 
{ 
    int s; 
    time_t t; 

    srand((unsigned) time(&t)); 
    s=(rand()%4)+1; 
    printf("%d" s); 

    return 0; 
} 

Nach Zufallsgenerator einer Variablen s, ich möchte eine Simulation starten, die nach s Sekunden enden wird. Die Anzahl der Simulationen wird verarbeitet (für jede wird s generiert) und der Benutzer beendet das Programm.

+0

Was simulieren Sie? Was würde deine Simulation eigentlich machen? Zeigen Sie einige Grafiken? Berechnen Sie einen physikalischen Zustand (z. B. Position von Planeten)? –

+0

Ihre Frage ist sehr verwirrt. Sie sollten ** Ihre Frage bearbeiten **, um mehr über Ihre Simulation zu erfahren. –

+1

Wahrscheinlich ein bisschen grob, aber du * könntest * nur 'Alarm (s) machen;' und warte ... ;-) – alk

Antwort

3

Zuerst lesen time(7)vorsichtig (und folgen Sie allen Referenzen dort!). Möglicherweise möchten Sie einige event loop um einige Multiplex-Aufruf wie poll(2) haben. Sie sollten auch Advanced Linux Programming lesen, um einen größeren Überblick zu erhalten.

Sie sollten wahrscheinlich einen großen Unterschied zwischen simulierter Zeit und abgelaufener Echtzeit (und CPU-Zeit) machen.

Natürlich <time.h> ist nur relevant, um die Zeit zu bekommen (und zeigen Sie es). Sie benötigen wahrscheinlich mehr (und es ist betriebssystemspezifisch; ich nehme an, dass Sie Linux verwenden).

Sie könnten Ihre Simulation in vielen kleinen Schritten organisieren (in einer Ereignisschleife).