2016-03-26 11 views
1

Ich habe diesen Code in C geschrieben, um Daten in eine Textdatei regelmäßig zu schreiben, aber mein Programm wird es nicht regelmäßig schreiben; Es schreibt vollständig in die Datei, ohne zu warten. Ich möchte, dass es Daten in eine Datei schreibt, ~ 2 Sekunden wartet und dann die nächste Zeile schreibt.In regelmäßigen Abständen Daten in Datei schreiben

for (i = 0; i < 8; i++) 
{ 
    tm.hh = random() % 23; 
    tm.mm = random() % 59; 
    tm.ss = random() % 59; 

    dt.dd = random() % 31; 
    dt.mm = random() % 12; 
    dt.yy = random() % 2020; 
    if (dt.yy < 2020 && dt.yy > 2015) 
    { 
     while (dt.yy < 1900) 
     { 
      dt.yy = random() % 2020; 
     } 
    } 

    val1 = random() % 100; 
    val2 = random() % 100; 

    fprintf(fp, "%d:%d:%d,%d/%d/%d,%d,%d,\n", tm.hh, tm.mm, tm.ss, dt.dd, dt.mm, dt.yy, val1, val2); 
    id = fork(); 
    if (id == -1) 
     printf("error in creating child process\n"); 
    else if (id == 0) 
    { 
     exit(0); 
    } 
    else 
     wait(NULL); 

} 
fclose(fp); 
+0

Was in diesem Code macht Sie denken, es für eine bestimmte Menge an Zeit warten ist los? –

Antwort

2

Sie können die Funktion sleep() direkt vor dem Schreiben einer Zeile verwenden. EDIT: müssen Sie enthalten:

In Windows

#include <windows.h> 
Sleep(<timeInMs>); 

In Unix

#include <unistd.h> 
sleep(<timeInSeconds>); 
+0

Möchte die benötigten '# Include's hinzufügen. –

+0

Hinzugefügt @ColonelThirtyTwo! Danke, dass du darauf hingewiesen hast. – lucasmonteiro001

+1

Windows 'Sleep' braucht' #include 'nicht' unistd.h' –

Verwandte Themen