Erhalte die aktuelle Zeit in Sekunden

8

Ich frage mich, gibt es irgendeine Funktion, die die aktuelle Zeit in Sekunden, nur 2 Ziffern von Sekunden zurückgeben würde? Ich benutze gcc 4.4.2.

    
ant2009 11.02.2010, 07:47
quelle

4 Antworten

13

Das folgende vollständige Programm zeigt Ihnen, wie Sie auf den Sekundenwert zugreifen können:

%Vor%

Es gibt aus:

%Vor%

Wie es funktioniert, ist wie folgt.

  • es ruft time() auf, um die beste Annäherung an die aktuelle Zeit zu erhalten (normalerweise die Anzahl der Sekunden seit der Epoche, aber das ist nicht wirklich vom Standard vorgeschrieben).
  • ruft dann localtime() auf, um diese in eine Struktur umzuwandeln, die unter anderem die einzelnen Felder für Datum und Uhrzeit enthält.
  • An diesem Punkt können Sie einfach die Struktur abwählen, um die Felder zu erhalten, an denen Sie interessiert sind ( tm_sec in Ihrem Fall, aber ich habe ein paar davon gezeigt).

Denken Sie daran, dass Sie auch gmtime() anstelle von localtime() verwenden können, wenn Sie Greenwich-Zeit wünschen, oder UTC, wenn Sie zu jung sind, um sich daran zu erinnern: -).

    
paxdiablo 11.02.2010, 08:00
quelle
2

Ein portabler Weg ist, die aktuelle Zeit als time_t struct:

zu erhalten %Vor%

Abrufen eines struct tm für dieses time_t :

%Vor%

Untersuchen Sie das tm_sec Mitglied von mytm . Abhängig von Ihrer C-Bibliothek gibt es keine Garantie, dass der Rückgabewert von time() auf einer Anzahl von Sekunden seit dem Beginn einer Minute basiert.

    
Charles Bailey 11.02.2010 07:54
quelle
1

Ich glaube, das ist es, wonach Sie suchen. Wenn nicht, meine Entschuldigung. :)

%Vor%     
Michael Foukarakis 11.02.2010 07:55
quelle
1

Sie möchten gettimeofday verwenden:

man 2 gettimeofday

%Vor%

Dies ist besser zu verwenden als time (0), da Sie auch die useconds atomar erhalten, was der häufigere Anwendungsfall ist.

    
Richard Wicks 22.01.2018 20:26
quelle

Tags und Links