.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2001 walter harms (walter.harms@informatik.uni-oldenburg.de) .\" and Copyright 2008, Linux Foundation, written by Michael Kerrisk .\" .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Modified, 2001-12-26, aeb .\" 2008-09-07, mtk, Various rewrites; added an example program. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getdate 3 "20 lipca 2023 r." "Linux man\-pages 6.05.01" .SH NAZWA getdate, getdate_r \- dzielą tekstową datę z czasem na osobne pola .SH BIBLIOTEKA Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP) .SH SKŁADNIA .nf \fB#include \fP .PP \fBstruct tm *getdate(const char *\fP\fIstring\fP\fB);\fP .PP \fBextern int getdate_err;\fP .PP \fBint getdate_r(const char *restrict \fP\fIstring\fP\fB, struct tm *restrict \fP\fIres\fP\fB);\fP .fi .PP .RS -4 Wymagane ustawienia makr biblioteki glibc (patrz \fBfeature_test_macros\fP(7)): .RE .PP \fBgetdate\fP(): .nf .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE >= 500 .fi .PP \fBgetdate_r\fP(): .nf _GNU_SOURCE .fi .SH OPIS Funkcja \fBgetdate\fP() przekształca tekstową reprezentację daty i czasu, przekazaną w buforze wskazywanym przez \fIstring\fP, na osobne pola zawierające rozłożony czas. Ten rozłożony czas jest przechowywany w strukturze \fItm\fP, do której wskaźnik jest zwracany jako wynik funkcji. Zwracana struktura \fItm\fP może się znajdować w pamięci statycznej, wobec czego zostanie nadpisana przez kolejne wywołania funkcji \fBgetdate\fP(). .PP W odróżnieniu od \fBstrptime\fP(3) (która przyjmuje argument \fIformat\fP), \fBgetdate\fP() posługuje się formatami znajdującymi się w pliku, do którego pełna ścieżka jest podana w zmiennej środowiskowej \fBDATEMSK\fP. Do konwersji stosowana jest pierwsza z linii pliku, która pasuje do zadanego łańcucha. .PP Podczas dopasowywania ignorowana jest wielkość liter. Ignorowane są również nadmiarowe białe znaki, zarówno we wzorcu, jak i w przekształcanym łańcuchu. .PP Specyfikacje przekształceń, które mogą być zawarte we wzorcu są takie same, jak dla \fBstrptime\fP(3). Jedna dodatkowa specyfikacja przekształcenia jest opisana w standardzie POSIX.1\-2001: .TP \fB%Z\fP .\" FIXME Is it (still) true that %Z is not supported in glibc? .\" Looking at the glibc 2.21 source code, where the implementation uses .\" strptime(), suggests that it might be supported. Nazwa strefy czasowej. Glibc tego nie implementuje. .PP Gdy podano \fB%Z\fP, to struktura zawierająca rozłożony czas jest inicjowana wartościami odpowiadającymi bieżącemu czasowi w podanej strefie czasowej. W przeciwnym przypadku, jest inicjowana jako rozłożony czas odpowiadający bieżącemu czasowi lokalnemu (tak jak w przypadku wywołania funkcji \fBlocaltime\fP(3)). .PP Gdy podany jest tylko dzień tygodnia, brany jest pierwszy taki dzień przypadający w dniu bieżącym lub później. .PP Gdy podany jest jedynie miesiąc (bez roku), brany jest pierwszy taki miesiąc przypadający w miesiącu bieżącym lub po nim. Gdy nie podano dnia, brany jest pierwszy dzień miesiąca. .PP When no hour, minute, and second are given, the current hour, minute, and second are taken. .PP Gdy nie podano daty, ale znana jest godzina, brana jest pierwsza taka godzina przypadająca w bieżącej godzinie lub później. .PP \fBgetdate_r\fP() jest rozszerzeniem GNU. Jest to bezpieczna dla wątków wersja \fBgetdate\fP(), która zamiast używać globalnej zmiennej do raportowania błędów oraz statycznego bufora na rozłożony czas, zwraca błędy jako wynik funkcji oraz zwraca rozłożony czas w zaalokowanej przez funkcję wywołującą strukturze wskazywanej przez argument \fIres\fP. .SH "WARTOŚĆ ZWRACANA" Po pomyślnym zakończeniu \fBgetdate\fP() zwraca wskaźnik do struktury \fIstruct tm\fP. W przeciwnym razie zwraca NULL i ustawia zmienną globalną \fBgetdate_err\fP na jeden z poniżej podanych numerów błędów. Zmiany \fIerrno\fP nie są określone. .PP W przypadku powodzenia \fBgetdate_r\fP() zwraca zero. W przeciwnym wypadku zwraca jeden z poniżej podanych numerów błędów. .SH BŁĘDY Poniższe błędy są zwracane albo poprzez \fIgetdate_err\fP (w przypadku \fBgetdate\fP()), albo jako wynik funkcji (w przypadku \fBgetdate_r\fP()): .TP 4n \fB1\fP Zmienna środowiska \fBDATEMSK\fP nie jest zdefiniowana lub ma pustą wartość. .TP \fB2\fP Nie udało się otworzyć pliku wzorców określonego przez \fBDATEMSK\fP w trybie do odczytu. .TP \fB3\fP .\" stat() Nie udało się pobrać informacji o stanie. .TP \fB4\fP Plik wzorców nie jest zwykłym plikiem. .TP \fB5\fP Wystąpił błąd podczas odczytu pliku wzorców. .TP \fB6\fP .\" Error 6 doesn't seem to occur in glibc Nie udało się przydzielić pamięci (brak dostępnej pamięci). .TP \fB7\fP Brak w pliku linii pasującej do podanych danych. .TP \fB8\fP Niewłaściwa specyfikacja wejściowa. .SH ŚRODOWISKO .TP \fBDATEMSK\fP Plik zawierający wzorce formatów. .TP \fBTZ\fP, \fBLC_TIME\fP Zmienne używane przez \fBstrptime\fP(3). .SH ATRYBUTY Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku \fBattributes\fP(7). .TS allbox; lb lb lbx l l l. Interfejs Atrybut Wartość T{ .na .nh \fBgetdate\fP() T} Bezpieczeństwo wątkowe T{ .na .nh MT\-Unsafe race:getdate env locale T} T{ .na .nh \fBgetdate_r\fP() T} Bezpieczeństwo wątkowe T{ .na .nh MT\-bezpieczne env locale T} .TE .sp 1 .SH WERSJE Standard POSIX.1 dla \fBstrptime\fP(3) zawiera specyfikacje przekształceń korzystające z modyfikatorów \fB%E\fP lub \fB%O\fP, podczas gdy takie specyfikacje nie zostały podane dla \fBgetdate\fP(). Implementacja w glibc realizuje \fBgetdate\fP() za pomocą \fBstrptime\fP(3), więc automatycznie obie funkcje wspierają te same specyfikacje przekształceń. .SH STANDARDY POSIX.1\-2008. .SH HISTORIA POSIX.1\-2001. .SH PRZYKŁADY Poniższy program wywołuje \fBgetdate\fP() dla każdego z argumentów linii poleceń i po każdym takim wywołaniu wyświetla wartości pól zwróconej struktury \fItm\fP. Następująca sesja powłoki obrazuje działanie programu: .PP .in +4n .EX $\fB TFILE=$PWD/tfile\fP $\fB echo \[aq]%A\[aq] > $TFILE \fP # Full name of the day of the week $\fB echo \[aq]%T\[aq] >> $TFILE\fP # Time (HH:MM:SS) $\fB echo \[aq]%F\[aq] >> $TFILE\fP # ISO date (YYYY\-MM\-DD) $\fB date\fP $\fB export DATEMSK=$TFILE\fP $\fB ./a.out Tuesday \[aq]2009\-12\-28\[aq] \[aq]12:22:33\[aq]\fP Sun Sep 7 06:03:36 CEST 2008 Call 1 ("Tuesday") succeeded: tm_sec = 36 tm_min = 3 tm_hour = 6 tm_mday = 9 tm_mon = 8 tm_year = 108 tm_wday = 2 tm_yday = 252 tm_isdst = 1 Call 2 ("2009\-12\-28") succeeded: tm_sec = 36 tm_min = 3 tm_hour = 6 tm_mday = 28 tm_mon = 11 tm_year = 109 tm_wday = 1 tm_yday = 361 tm_isdst = 0 Call 3 ("12:22:33") succeeded: tm_sec = 33 tm_min = 22 tm_hour = 12 tm_mday = 7 tm_mon = 8 tm_year = 108 tm_wday = 0 tm_yday = 250 tm_isdst = 1 .EE .in .SS "Kod źródłowy programu" .\" SRC BEGIN (getdate.c) \& .EX #define _GNU_SOURCE #include #include #include \& int main(int argc, char *argv[]) { struct tm *tmp; \& for (size_t j = 1; j < argc; j++) { tmp = getdate(argv[j]); \& if (tmp == NULL) { printf("Call %zu failed; getdate_err = %d\en", j, getdate_err); continue; } \& printf("Call %zu (\e"%s\e") succeeded:\en", j, argv[j]); printf(" tm_sec = %d\en", tmp\->tm_sec); printf(" tm_min = %d\en", tmp\->tm_min); printf(" tm_hour = %d\en", tmp\->tm_hour); printf(" tm_mday = %d\en", tmp\->tm_mday); printf(" tm_mon = %d\en", tmp\->tm_mon); printf(" tm_year = %d\en", tmp\->tm_year); printf(" tm_wday = %d\en", tmp\->tm_wday); printf(" tm_yday = %d\en", tmp\->tm_yday); printf(" tm_isdst = %d\en", tmp\->tm_isdst); } \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "ZOBACZ TAKŻE" \fBtime\fP(2), \fBlocaltime\fP(3), \fBsetlocale\fP(3), \fBstrftime\fP(3), \fBstrptime\fP(3) .PP .SH TŁUMACZENIE Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Andrzej Krzysztofowicz i Robert Luberda . .PP 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. .PP Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej .MT manpages-pl-list@lists.sourceforge.net .ME .