Gibt die Funktion clock_gettime
einen Zeitstempel zurück, der von der Epoche in UTC oder in der lokalen Zeitzone gemessen wurde?
Ich weiß, dass time
aus der UTC-Epoche stammen soll, aber ich kann keinen Hinweis finden, dass das Gleiche für clock_gettime
gilt.
Eigentlich macht die Frage keinen großen Sinn. Eine Übersicht über zeitbezogene Funktionen finden Sie unter time (7) .
Jedes Zeitgebergerät gibt eine Zeit zurück, die von einem Ursprungsereignis in der Vergangenheit gemessen wurde. Unix (und Posix) Konvention ist es aus der Epoche zu messen (Anfang 1970, als Aix's Antwort erklärt).
Anzeigen einige Zeit in UTC oder Ortszeit, oder mit dem französischen revolutionären Kalender, oder mit dem Maya-Kalender oder einem anderen Kalender von welcher Kultur Sie interessiert sind, ändert diese Zeit nicht . Nur die Anzeige (oder die angezeigte Form) dieser Zeit ändert sich.
Es ist ein bisschen so, als würde man sagen, dass zwei , deux , 1 + 1 oder 2 oder 10b -with b bedeutet binary- sind alle Darstellungen der gleichen -Nummer.
Zurück zur Frage, die man-Seite von clock_gettime gibt die genaue Antwort auf die Frage. Es hängt von der clk_id
ab, nach der du fragst, und für CLOCK_REALTIME
wird die Zeit seit der Unix-Epoche gemessen. Für andere Uhren (z. B. CLOCK_MONOTONIC
) wird der verwendete Ursprung nicht angegeben.
(Ich bin ziemlich traurig überrascht über die Anzahl der Fragen hier, die sehr schnell beantwortet werden können, indem ich in den Mann schaue. Ich verstehe nicht die Logik von Menschen, die sich mehr Zeit nehmen Frage hier, dass zu schauen - einfach durch Eingabe von man clock_gettime
auf ihrer Linux-Box - in die man-Seiten).
Der Begriff der Zeitzone ist nur relevant für struct tm
, wie von localtime & amp; gmtime
(und verwandte) Funktionen. Eine Zeit (zB einige time_t
) gemessen von der Epoche (wie das Ergebnis von Zeit (2) , < a href="http://linux.die.net/man/2/gettimeofday"> gettimeofday , clock_gettime
mit CLOCK_REALTIME
) hat keine Zeitzone.
Die Unix-Epoche ist der 1. Januar 1970 0:00 UTC (nach Definition von (time_t)0
), In meiner Zeitzone (MET = Paris / Frankreich) ist die gleiche Epoche Do 1. Januar 01:00:00 MET 1970.