ctime(3) Library Functions Manual ctime(3) BEZEICHNUNG asctime, ctime, gmtime, localtime, mktime - Datum und Zeit in aufgeschlusselte Zeit oder ASCII umwandeln BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include char *asctime(const struct tm *tm); char *asctime_r(const struct tm *restrict tm, char Puffer[restrict 26]); char *ctime(const time_t *Zeitz); char *ctime_r(const time_t *restrict Zeitz, char Puffer[restrict 26]); struct tm *gmtime(const time_t *zeitz); struct tm *gmtime_r(const time_t *restrict zeitz, struct tm *restrict Ergebnis); struct tm *localtime(const time_t *zeitz); struct tm *localtime_r(const time_t *restrict zeitz, struct tm *restrict Ergebnis); time_t mktime(struct tm *tm); Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)): asctime_r(), ctime_r(), gmtime_r(), localtime_r(): _POSIX_C_SOURCE || /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE BESCHREIBUNG Die Funktionen ctime(), gmtime() und localtime() benotigen ein Argument des Datentyps time_t, welches die Kalenderzeit darstellt. Wenn sie als absoluter Zeitwert interpretiert wird, stellt sie die Unixzeit dar, die Sekunden, die seit dem 1. Januar 1970, 00:00.00 Uhr koordinierter Weltzeit (UTC) verstrichen sind. Die Funktionen asctime() und mktime() benotigen jeweils ein Argument das eine aufgeschlusselte Zeitangabe darstellt, die in Jahr, Monat, Tag usw. aufgeteilt ist. Aufgeschlusselte Zeit wird in der Struktur tm gespeichert, die in tm(3type) beschrieben ist. Der Aufruf ctime(t) entspricht asctime(localtime(t)). Er konvertiert die Kalenderzeit t in eine durch Null beendete Zeichenkette der Form "Wed Jun 30 21:49:08 1993\n" Die Abkurzungen fur die Wochentage sind >>Sun<<, >>Mon<<, >>Tue<<, >>Wed<<, >>Thu<<, >>Fri<< und >>Sat<<. Die Abkurzungen fur die Monate sind >>Jan<<, >>Feb<<, >>Mar<<, >>Apr<<, >>May<<, >>Jun<<, >>Jul<<, >>Aug<<, >>Sep<<, >>Oct<<, >>Nov<< und >>Dec<<. Der Ruckgabewert zeigt auf eine statisch reservierte Zeichenkette, die durch nachfolgende Aufrufe von Datums- und Zeitfunktionen uberschrieben werden darf. Die Funktion setzt auch die externen Variablen tzname, timezone und daylight (siehe tzset(3)) mit Informationen uber die aktuelle Zeitzone. Die ablaufinvariante Version ctime_r() tut dasselbe, speichert aber die Zeichenkette in einem vom Benutzer gelieferten Zeichenkettenpuffer, der Platz fur mindestens 26 Byte haben sollte. tzname, timezone und daylight mussen nicht gesetzt sein. Die Funktion gmtime() wandelt die Kalenderzeit zeitz in eine aufgeschlusselte Entsprechung der Zeit um, die in koordinierter Weltzeit (UTC) ausgedruckt wird. Sie kann NULL zuruckgeben, wenn das Jahr nicht in eine Ganzzahl passt. Der Ruckgabewert zeigt auf eine statisch reservierte Struktur, die von nachfolgenden Aufrufen irgendwelcher Datums- und Zeitfunktionen uberschrieben werden kann. Die Funktion gmtime_r() tut das gleiche, speichert aber die Daten in einer vom Benutzer gelieferten Struktur. Die Funktion localtime() wandelt die Kalenderzeit zeitz in eine aufgeschlusselte Entsprechung der Zeit um, ausgedruckt relativ zu der vom Benutzer angegebenen Zeitzone. Die Funktion arbeitet, als ob sie tzset(3) aufrufen wurde und setzt die externen Variablen tzname auf die Informationen uber die aktuelle Zeitzone, timezone auf die Differenz zwischen koordinierter Weltzeit (UTC) und der lokalen Standardzeit in Sekunden und daylight auf einen Wert ungleich Null, falls wahrend einem Teil des Jahres Sommerzeitregeln gelten. Der Ruckgabewert zeigt auf eine statisch reservierte Struktur, die von nachfolgenden Aufrufen irgendwelcher Datums- und Zeitfunktionen uberschrieben werden kann. Die Funktion localtime_r() tut das gleiche, speichert aber die Daten in einer vom Benutzer gelieferten Struktur. tzname, timezone und daylight mussen nicht gesetzt sein. Die Funktion asctime() wandelt den aufgeschlusselten Zeitwert tm in eine durch Null beendete Zeichenkette mit dem gleichen Format wie ctime(). Der Ruckgabewert zeigt auf eine statisch reservierte Zeichenkette, die von nachfolgenden Aufrufen irgendwelcher Datums- und Zeitfunktionen uberschrieben werden kann. Die Funktion asctime_r() tut das gleiche, speichert aber die Zeichenkette in einem vom Benutzer gelieferten Zeichenkettenpuffer, der Platz fur mindestens 26 Byte haben sollte. Die Funktion mktime() wandelt die aufgeschlusselten Zeitstruktur, die als lokale Zeit ausgedruckt wird, in eine Entsprechung der Kalenderzeit. Die Funktion ignoriert die Werte, die der Aufrufende in den Feldern tm_wday und tm_yday mitgegeben hat, egal ob in der Zeit der mitgegebenen Struktur tm Sommerzeit ist oder nicht: Ein positiver Wert bedeutet, dass Sommerzeit ist, Null bedeutet, dass keine Sommerzeit ist und ein negativer Wert bedeutet, dass mktime() (mit Zeitzoneninformationen und Systemdatenbanken) versuchen sollte zu bestimmen, ob zur angegebenen Zeit Sommerzeit ist oder nicht. Die Funktion mktime() andert die Felder der Struktur tm wie folgt: tm_wday und tm_yday werden auf die Werte gesetzt, die vom Inhalt anderer Felder bestimmt werden; falls Elemente der Stuktur ausserhalb ihres erlaubten Intervalls liegen, werden sie normalisiert (so dass zum Beispiel der 40. Oktober auf 9. November geandert wird); tm_isdst wird (unabhangig vom anfanglichen Wert) auf einen positiven Wert beziehungsweise 0 gesetzt, um anzuzeigen, ob zur angegebenen Zeit Sommerzeit ist oder nicht. Der Aufruf von mktime() setzt ausserdem die Variable tzname mit Informationen uber die aktuelle Zeitzone. Falls die angegebene aufgeschlusselte Zeit nicht als Kalenderzeit (Unixzeit in Sekunden) dargestellt werden kann, gibt mktime() (time_t) -1 zuruck und verandert die Elemente der aufgeschlusselten Zeitstruktur nicht. RUCKGABEWERT Im Erfolgsfall liefern gmtime() und localtime() einen Zeiger auf ein struct tm zuruck. Im Erfolgsfall liefern gmtime_r() und localtime_r() die Adresse der Struktur zuruck, auf die result zeigt. Im Erfolgsfall liefern asctime() und ctime() einen Zeiger auf eine Zeichenkette zuruck. Im Erfolgsfall liefern asctime_r() und ctime_r() einen Zeiger zuruck, auf den buf zeigt. Im Erfolgsfall liefert mktime() die Kalenderzeit (Sekunden seit der Epoch) zuruck, ausgedruckt als Wert des Typs time_t. Im Fehlerfall liefert mktime() den Wert (time_t) -1 zuruck. Die verbliebenen Funktionen liefern NULL im Fehlerfall zuruck. Im Fehlerfall wird errno gesetzt, um den Fehler anzuzeigen. FEHLER EOVERFLOW Das Ergebnis kann nicht dargestellt werden. ATTRIBUTE Siehe attributes(7) fur eine Erlauterung der in diesem Abschnitt verwandten Ausdrucke. +---------------+-------------------------+----------------------------+ |Schnittstelle | Attribut | Wert | +---------------+-------------------------+----------------------------+ |asctime() | Multithread-Fahigkeit | MT-Unsicher race:asctime | | | | locale | +---------------+-------------------------+----------------------------+ |asctime_r() | Multithread-Fahigkeit | MT-Sicher locale | +---------------+-------------------------+----------------------------+ |ctime() | Multithread-Fahigkeit | MT-Unsicher race:tmbuf | | | | race:asctime env locale | +---------------+-------------------------+----------------------------+ |ctime_r(), | Multithread-Fahigkeit | MT-Sicher env locale | |gmtime_r(), | | | |localtime_r(), | | | |mktime() | | | +---------------+-------------------------+----------------------------+ |gmtime(), | Multithread-Fahigkeit | MT-Unsicher race:tmbuf env | |localtime() | | locale | +---------------+-------------------------+----------------------------+ VERSIONEN POSIX spezifiziert die Parameter von ctime_r() nicht als restrict; dies ist Glibc-spezifisch. In vielen Implementierungen, einschliesslich Glibc, wird a 0 in tm_mday als letzter Tag des vorhergehenden Monats interpretiert. Gemass POSIX.1-2001 wird localtime() benotigt, um sich so zu verhalten, als sei tzset(3) aufgerufen worden, wahrend localtime_r() nicht diese Anforderung stellt. Fur portierbaren Code sollte tzset(3) vor localtime_r() aufgerufen werden. STANDARDS asctime() ctime() gmtime() localtime() mktime() C11, POSIX.1-2008. asctime_r() ctime_r() gmtime_r() localtime_r() POSIX.1-2008. GESCHICHTE gmtime() localtime() mktime() C89, POSIX.1-2001. asctime() ctime() C89, POSIX.1-2001. Wurde in POSIX.1-2008 als veraltet markiert (und strftime(3) empfohlen). gmtime_r() localtime_r() POSIX.1-2001. asctime_r() ctime_r() POSIX.1-2001. Wurde in POSIX.1-2008 als veraltet markiert (und strftime(3) empfohlen). ANMERKUNGEN Die vier Funktionen asctime(), ctime(), gmtime() und localtime() geben einen Zeiger auf statische Daten zuruck und sind daher nicht multithread-fahig. Multithread-fahige Versionen asctime_r(), ctime_r(), gmtime_r() und localtime_r werden durch SUSv2 spezifiziert. POSIX.1-2001 sagt: >>Die Funktionen asctime(), ctime(), gmtime() und localtime() mussen Ruckgabewerte in einem von zwei statischen Objekten liefern: einer aufgeschlusselten Zeit und einem Feld des Typs char. Das Ausfuhren irgendeiner der Funktionen konnte die zuruckgegebene Information uberschreiben, die von diesen beiden Objekten durch andere Funktionen zuruckgegeben wurden.<< Dies kann in der Glibc-Implementierung vorkommen. SIEHE AUCH date(1), gettimeofday(2), time(2), utime(2), clock(3), difftime(3), strftime(3), strptime(3), timegm(3), tzset(3), time(7) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Patrick Rother , Chris Leick , Mario Blattermann und Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.06 31. Oktober 2023 ctime(3)