Scroll to navigation

TIME(2) Linux-Programmierhandbuch TIME(2)

BEZEICHNUNG

time - Zeit in Sekunden abfragen

ÜBERSICHT

#include <time.h>

time_t time(time_t *tloc);

BESCHREIBUNG

time() gibt die Zeit als Anzahl der Sekunden seit dem Beginn der Unixzeit am 1.1.1970, 00:00:00 +0000 (UTC) an.

Falls tloc nicht NULL ist, wird der Rückgabewert auch im Speicher an der Stelle abgelegt, auf die tloc zeigt.

RÜCKGABEWERT

Bei Erfolg wird die Zeit seit Beginn der Unixzeit in Sekunden zurückgegeben. Tritt ein Fehler auf, wird ((time_t) -1) zurückgegeben und errno entsprechend gesetzt.

FEHLER

tloc zeigt außerhalb Ihres verfügbaren Adressbereichs (siehe aber auch FEHLER).
Auf Systemen, auf denen die C-Bibliothek-time()-Wrapper-Funktion eine von vdso(7) bereitgestellte Implementierung aufruft (so dass es keine Verbindung in den Kernel gibt), kann eine ungültige Adresse stattdessen ein SIGSEGV-Signal auslösen.

KONFORM ZU

SVr4, 4.3BSD, C89, C99, POSIX.1-2001. POSIX legt keine Fehlerbedingungen fest.

ANMERKUNGEN

POSIX.1 definiert die Sekunden seit Anfang der Unixzeit mittels einer Formel, die die Anzahl der Sekunden zwischen einem bestimmten Zeitpunkt und dem Anfang der »Unixzeit« abschätzt. Diese Formel berücksichtigt die Tatsache, dass alle durch vier ohne Rest teilbaren Jahre Schaltjahre sind. Alle durch 100 ohne Rest teilbaren Jahre sind keine Schaltjahre, es sei denn, sie sind gleichzeitig durch 400 ohne Rest teilbar, dann sind es wiederum Schaltjahre. Dieser Wert entspricht nicht der tatsächlichen Anzahl an Sekunden zwischen dem angegebenen Zeitpunkt und dem Anfang der »Unixzeit«, weil Schaltsekunden nicht berücksichtigt werden und es nicht erforderlich ist, dass Systemuhren mit einer Standardreferenz synchronisiert werden. Das Ziel dieser Festlegung ist eine konsistente Interpretation des Sekundenwertes seit Anfang der »Unixzeit«. Siehe auch POSIX.1-2008 Rationale A.4.15 für weitere Erläuterungen.

Unter Linux kann ein Aufruf von time() nicht mit dem Fehler EOVERFLOW fehlschlagen, wenn tloc als NULL angegeben wurde, auch nicht auf ABIs, bei denen time_t eine vorzeichenbehaftete 32-Bit-Ganzzahl ist und die Zeiteinheiten nach dem Zeitpunkt 2**31 liegen (2038-01-19 03:14:08 UTC, Schaltsekunden werden ignoriert). (POSIX.1 erlaubt den Fehler EOVERFLOW im Fall, dass die Sekunden seit der Unixzeit nicht in time_t passen, erfordert ihn jedoch nicht.) Stattdessen ist das Verhalten unter Linux nicht definiert, wenn die Systemzeit außerhalt des Bereichs von time_t liegt. Anwendungen, die nach 2038 noch laufen sollen, sollten ABIs verwenden, bei denen time_t größer als 32 Bit ist.

FEHLER

Fehler, die von diesem Systemaufruf zurückgegeben werden, sind nicht von erfolgreichen Berichten, dass die Zeit ein paar Sekunden vor der Unixzeit liegt, zu unterscheiden. Daher kann die C-Bibliothek-Wrapper-Funktion errno nie als Ergebnis dieses Aufrufs setzen.

Das Argument tloc ist veraltet und sollte in neuem Code immer NULL sein. Wenn tloc NULL ist, kann der Aufruf nicht fehlschlagen.

Unterschiede C-Bibliothek/Kernel

Auf einigen Architekturen wird eine Implementierung von time() in einem vdso(7) bereitgestellt.

SIEHE AUCH

date(1), gettimeofday(2), ctime(3), ftime(3), time(7), vdso(7)

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 5.10 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Michael Haardt <michael@moria.de>, Ralf Demmer <rdemmer@rdemmer.de>, Chris Leick <c.leick@vollbio.de> und Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

15. September 2017 Linux