timer



  • kann mir jemandfolgenden quellcode erklären?

    void stoppuhr( void *dummy ) {
        time_t start;
    
        while(weiter) {
            time(&start); //liefert die aktuelle Kalenderzeit
            printf("\b\b\b\b%3i:", count);
            while(difftime(time(NULL),start) < 1);
              count++;
            if (count == 10)
                weiter = 0;
        }
    }
    

    Also spezielle die schleife

    while(difftime(time(NULL),start) < 1);
              count++;
    

    Versteh das nicht so ganz.



  • Bitte poste doch den Inhalt deiner Doku zum Thema difftime (ist in time.h)...

    dann wirst du verstehen was die Schleife macht 😉



  • Erstens gehört das "count++;" gar nicht mehr zur Schleife. Und zweitens nennt sich das "busy waiting" - die Schleife macht so lange gar nichts, bis der Unterschied (difftime()) zwischen ursprünglicher Zeit ('start') und aktueller Zeit ('time(NULL)') größer wird als eine Sekunde.


Anmelden zum Antworten