.\" -*- coding: UTF-8 -*- .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" Modified Sat Jul 24 19:49:27 1993 by Rik Faith (faith@cs.unc.edu) .\" Modified Fri Apr 26 12:38:55 MET DST 1996 by Martin Schulze (joey@linux.de) .\" Modified 2001-11-13, aeb .\" Modified 2001-12-13, joey, aeb .\" Modified 2004-11-16, mtk .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH CTIME 3 "21 grudnia 2020 r." "" "Podręcznik programisty Linuksa" .SH NAZWA asctime, ctime, gmtime, localtime, mktime, asctime_r, ctime_r, gmtime_r, localtime_r \- konwersja daty i czasu do postaci czasu rozłożonego lub ASCII .SH SKŁADNIA .nf \fB#include \fP .PP \fBchar *asctime(const struct tm *\fP\fItm\fP\fB);\fP \fBchar *asctime_r(const struct tm *\fP\fItm\fP\fB, char *\fP\fIbuf\fP\fB);\fP .PP \fBchar *ctime(const time_t *\fP\fItimep\fP\fB);\fP \fBchar *ctime_r(const time_t *\fP\fItimep\fP\fB, char *\fP\fIbuf\fP\fB);\fP .PP \fBstruct tm *gmtime(const time_t *\fP\fItimep\fP\fB);\fP \fBstruct tm *gmtime_r(const time_t *\fP\fItimep\fP\fB, struct tm *\fP\fIresult\fP\fB);\fP .PP \fBstruct tm *localtime(const time_t *\fP\fItimep\fP\fB);\fP \fBstruct tm *localtime_r(const time_t *\fP\fItimep\fP\fB, struct tm *\fP\fIresult\fP\fB);\fP .PP \fBtime_t mktime(struct tm *\fP\fItm\fP\fB);\fP .fi .PP .RS -4 Wymagane ustawienia makr biblioteki glibc (patrz \fBfeature_test_macros\fP(7)): .RE .ad l .PP \fBasctime_r\fP(), \fBctime_r\fP(), \fBgmtime_r\fP(), \fBlocaltime_r\fP(): .RS _POSIX_C_SOURCE || /* Glibc w wersji <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE .RE .ad .SH OPIS The \fBctime\fP(), \fBgmtime\fP(), and \fBlocaltime\fP() functions all take an argument of data type \fItime_t\fP, which represents calendar time. When interpreted as an absolute time value, it represents the number of seconds elapsed since the Epoch, 1970\-01\-01 00:00:00 +0000 (UTC). .PP Funkcje \fBasctime\fP() oraz \fBmktime\fP() przyjmują jako argument czas rozłożony, który jest reprezentacją podzieloną na rok, miesiąc, dzień itd. .PP Czas rozłożony jest przechowywany w strukturze \fItm\fP, zdefiniowanej w \fI\fP następująco: .PP .in +4n .EX struct tm { int tm_sec; /* sekundy (0\-60) */ int tm_min; /* minuty (0\-59) */ int tm_hour; /* godziny (0\-23) */ int tm_mday; /* dzień miesiąca (1\-31) */ int tm_mon; /* miesiąc (0\-11) */ int tm_year; /* rok \- 1900 */ int tm_wday; /* dzień tygodnia (0\-6, niedziela = 0) */ int tm_yday; /* dzień roku (0\-365, 1.01 = 0)*/ int tm_isdst; /* sezonowa zmiana czasu */ }; .EE .in .PP Elementy struktury \fItm\fP to: .TP 10 \fItm_sec\fP Liczba sekund po pełnej minucie, normalnie z zakresu od 0 do 59, ale może wynosić nawet do 60, aby umożliwić sekundy przestępne. .TP \fItm_min\fP Liczba minut po pełnej godzinie, z zakresu od 0 do 59. .TP \fItm_hour\fP Liczba godzin po północy, z zakresu od 0 do 23. .TP \fItm_mday\fP Dzień tygodnia, z zakresu od 1 do 31. .TP \fItm_mon\fP Liczba miesięcy od stycznia, z zakresu od 0 do 11. .TP \fItm_year\fP Liczba lat od 1900. .TP \fItm_wday\fP Liczba dni od niedzieli, z zakresu od 0 do 6. .TP \fItm_yday\fP Liczba dni od 1 stycznia, z zakresu od 0 do 365. .TP \fItm_isdst\fP Znacznik, który wskazuje, czy dla podanego czasu została przeprowadzona zmiana czasu zimowy/letni. Jeśli wartość ta jest dodatnia, to zmiana czasu została przeprowadzona, jeśli wynosi zero \- zmiany nie przeprowadzono, a jeśli jest ujemna \- oznacza to, że informacja dotycząca zmiany czasu nie jest dostępna. .PP Wywołanie \fBctime(\fP\fIt\fP\fB)\fP jest równoważne \fBasctime(localtime(\fP\fIt\fP\fB))\fP. Przekształca czas kalendarzowy \fIt\fP na zakończony znakiem null łańcuch o postaci .PP .in +4n .EX "śro, sty 30 21:49:08 1993\en" .EE .in .PP Skróty dni tygodnia to "nie", "pon", "wto", "śro", "czw", "pią" i "sob". Skróty miesięcy to "sty", "lut", "mar", "kwi", "maj", "cze", "lip", "sie", "wrz", "paź", "lis" i "gru". Zwracany jest wskaźnik do statycznego łańcucha, który może zostać nadpisany przy kolejnym wywołaniu dowolnej funkcji daty i czasu. Funkcja zapisuje również informacje o bieżącej strefie czasowej do zewnętrznych zmiennych \fItzname\fP, \fItimezone\fP i \fIdaylight\fP (patrz \fBtzset\fP(3)). Wielowątkowa wersja tej funkcji, \fBctime_r\fP(), robi to samo, ale zapisuje łańcuch w podanym przez użytkownika buforze, który powinien móc pomieścić co najmniej 26 znaków. Nie musi ona ustawiać zmiennych \fItzname\fP, \fItimezone\fP, i \fIdaylight\fP. .PP Funkcja \fBgmtime\fP() przekształca czas kalendarzowy \fItimep\fP na czas rozłożony, wyrażony w Coordinated Universal Time (UTC). Może zwrócić wartość NULL, jeśli rok nie daje się zapisać jako liczba całkowita. Zwracany jest wskaźnik do statycznej struktury, która to struktura może zostać nadpisana przy kolejnym wywołaniu dowolnej funkcji daty i czasu. Funkcja \fBgmtime_r\fP() robi to samo, ale zapisuje dane do struktury podanej przez użytkownika. .PP Funkcja \fBlocaltime\fP() przekształca czas kalendarzowy \fItimep\fP na czas rozłożony, wyrażony względem wybranej przez użytkownika strefy czasowej. Funkcja działa tak, jakby wywoływała \fBtzset\fP(3) i wpisywała do zewnętrznej zmiennej \fItzname\fP informacje na temat bieżącej strefy czasowej, do \fItimezone\fP \- różnicę w sekundach pomiędzy Coordinated Universal Time (UTC) a lokalnym czasem standardowym, a do \fIdaylight\fP \- wartość niezerową, jeśli przez jakąś część roku obowiązuje inny czas niż podany (zimowy/letni). Zwracany jest wskaźnik do statycznej struktury, która może zostać nadpisana przy kolejnym wywołaniu dowolnej funkcji daty i czasu. Funkcja \fBlocaltime_r\fP() robi to samo, ale zapisuje dane do struktury podanej przez użytkownika. Nie musi ona ustawiać zmiennych \fItzname\fP, \fItimezone\fP i \fIdaylight\fP. .PP Funkcja \fBasctime\fP() przekształca czas rozłożony \fItm\fP na zakończony bajtem null łańcuch tego samego formatu, co \fBctime\fP(). Zwracany jest wskaźnik do statycznego łańcucha, który to łańcuch może zostać nadpisany przy kolejnym wywołaniu dowolnej funkcji daty i czasu. Funkcja \fBasctime_r\fP() robi to samo, ale zapisuje łańcuch w podanym przez użytkownika buforze o długości co najmniej 26 bajtów. .PP Funkcja \fBmktime\fP() przekształca strukturę czasu rozłożonego, wyrażoną w czasie lokalnym, na czas kalendarzowy. Funkcja ignoruje podane przez wywołującego wartości elementów \fItm_wday\fP oraz \fItm_yday\fP. Wartość podana w polu \fItm_isdst\fP informuje funkcję \fBmktime\fP() o tym, czy dla czasu podanego w strukturze \fItm\fP używany był czas letni (DST \- daylight saving time), czy też nie był używany: wartość dodatnia oznacza, że DST był używany, zero \- że nie był, a wartość ujemna nakazuje funkcji \fBmktime\fP() podjęcie próby sprawdzenia (w systemowej bazie danych informacji o strefach czasowych), czy DST był używany w podanym czasie. .PP Funkcja \fBmktime\fP() modyfikuje pola struktury \fItm\fP jak następuje: \fItm_wday\fP i \fItm_yday\fP są ustawiane na wartości określane na podstawie wartości innych pól. Jeśli elementy struktury mają wartości spoza zakresu wartości dopuszczalnych, to zostaną znormalizowane (w taki sposób, że np. 40 października zostanie zamieniony na 9 listopada). \fItm_isdst\fP jest ustawiane (niezależnie od jej początkowej wartości) na wartość dodatnią lub na 0, aby wskazać \- odpowiednio \- czy w podanym czasie DST był używany, czy też nie był. Uruchomienie funkcji \fBmktime\fP() ustawia także w zewnętrznej zmiennej \fItzname\fP informacje o bieżącej strefie czasowej. .PP Jeśli podany czas rozłożony nie może być reprezentowany jako czas kalendarzowy (sekundy od początku epoki), \fBmktime\fP() zwraca \fI(time_t)\ \-1\fP i nie zmienia pól w podzielonej strukturze czasu. .SH "WARTOŚĆ ZWRACANA" \fBgmtime\fP() oraz \fBlocaltime\fP(), gdy się zakończą pomyślnie, zwracają wskaźnik do \fIstruct\ tm\fP. .PP \fBgmtime_r\fP() oraz \fBlocaltime_r\fP(), gdy się zakończą pomyślnie, zwracają adres struktury wskazywanej przez \fIresult\fP. .PP \fBasctime\fP() oraz \fBctime\fP(), gdy się zakończą pomyślnie, zwracają wskaźnik do łańcucha znaków .PP \fBasctime_r\fP() oraz \fBctime_r\fP(), gdy się zakończą pomyślnie, zwracają wskaźnik do łańcucha znaków, na który wskazuje argument \fIbuf\fP. .PP \fBmktime\fP, gdy zakończy się pomyślnie, zwraca czas kalendarzowy (w sekundach od początku epoki [tj. 1970\-01\-01 00:00:00 +0000 \-przyp. tłum.]), wyrażony jako wartość typu \fItime_t\fP .PP W razie błędu \fBmktime\fP() zwraca wartość \fI(time_t)\ \-1\fP. Pozostałe funkcje w przypadku błędu zwracają NULL. Ustawiane jest też \fIerrno\fP, wskazując na rodzaj błędu. .SH BŁĘDY .TP \fBEOVERFLOW\fP Wynik jest niereprezentowalny. .SH ATRYBUTY Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku \fBattributes\fP(7). .ad l .TS allbox; lbw14 lb lbw31 l l l. Interfejs Atrybut Wartość T{ \fBasctime\fP() T} Bezpieczeństwo wątkowe MT\-Unsafe race:asctime locale T{ \fBasctime_r\fP() T} Bezpieczeństwo wątkowe MT\-Safe locale T{ \fBctime\fP() T} Bezpieczeństwo wątkowe T{ MT\-Unsafe race:tmbuf .br race:asctime env locale T} T{ \fBctime_r\fP(), \fBgmtime_r\fP(), \fBlocaltime_r\fP(), \fBmktime\fP() T} Bezpieczeństwo wątkowe MT\-Safe env locale T{ \fBgmtime\fP(), \fBlocaltime\fP() T} Bezpieczeństwo wątkowe MT\-Unsafe race:tmbuf env locale .TE .ad .SH "ZGODNE Z" POSIX.1\-2001. C89 i C99 opisują \fBasctime\fP(), \fBctime\fP(), \fBgmtime\fP(), \fBlocaltime\fP() oraz \fBmktime\fP(). POSIX.1\-2008 uznaje \fBasctime\fP(), \fBasctime_r\fP(), \fBctime\fP() oraz \fBctime_r\fP() za przestarzałe, rekomendując używanie \fBstrftime\fP(3) zamiast nich. .SH UWAGI The four functions \fBasctime\fP(), \fBctime\fP(), \fBgmtime\fP(), and \fBlocaltime\fP() return a pointer to static data and hence are not thread\-safe. The thread\-safe versions, \fBasctime_r\fP(), \fBctime_r\fP(), \fBgmtime_r\fP(), and \fBlocaltime_r\fP(), are specified by SUSv2. .PP POSIX.1\-2001 mówi: "Funkcje \fBasctime\fP(), \fBctime\fP(), \fBgmtime\fP() oraz \fBlocaltime\fP() powinny zwrócić wartości w jednym z dwóch statycznych obiektów: podzielonej strukturze czasu i tablicy znaków typu \fIchar\fP. Wywołanie którejkolwiek z tych funkcji może nadpisać informacje w którymkolwiek z obiektów zwróconych przez inne funkcje". Może się to zdarzyć w implementacji zastosowanej w bibliotece glibc. .PP Wiele implementacji, włączając glibc, interpretuje 0 w \fItm_mday\fP jako ostatni dzień poprzedniego miesiąca. .PP Wersja struktury \fIstruct tm\fP zawarta w glibc zawiera dodatkowe pola .PP .in +4n .EX const char *tm_zone; /* Skrót strefy czasowej */ .EE .in .PP zdefiniowane, gdy \fB_BSD_SOURCE\fP jest ustawione przed włączeniem \fI\fP. Jest to rozszerzenie BSD, obecne w 4.3BSD\-Reno. .PP .\" See http://thread.gmane.org/gmane.comp.time.tz/2034/ According to POSIX.1\-2001, \fBlocaltime\fP() is required to behave as though \fBtzset\fP(3) was called, while \fBlocaltime_r\fP() does not have this requirement. For portable code, \fBtzset\fP(3) should be called before \fBlocaltime_r\fP(). .SH "ZOBACZ TAKŻE" \fBdate\fP(1), \fBgettimeofday\fP(2), \fBtime\fP(2), \fButime\fP(2), \fBclock\fP(3), \fBdifftime\fP(3), \fBstrftime\fP(3), \fBstrptime\fP(3), \fBtimegm\fP(3), \fBtzset\fP(3), \fBtime\fP(7) .SH "O STRONIE" Angielska wersja tej strony pochodzi z wydania 5.10 projektu Linux \fIman\-pages\fP. Opis projektu, informacje dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem \%https://www.kernel.org/doc/man\-pages/. .SH TŁUMACZENIE Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Adam Byrtek , Andrzej Krzysztofowicz , Robert Luberda i Michał Kułach . Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License w wersji 3 .UE lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI. Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres .MT manpages-pl-list@lists.sourceforge.net .ME .