NAZWA¶
getdate() - przekształca łańcuch w strukturę struct
tm
SKŁADNIA¶
#define _XOPEN_SOURCE
#define _XOPEN_SOURCE_EXTENDED
#include <time.h>
struct tm *getdate (const char *string);
extern int getdate_err;
#define _GNU_SOURCE
#include <time.h>
int getdate_r (const char *string, struct tm
*res);
OPIS¶
Uwaga! To tłumaczenie może być nieaktualne!
Funkcja
getdate() przekształca łańcuch wskazywany
przez
string w strukturę tm, która jest zwracana.
Zwracana struktura tm może się znajdować w pamięci
statycznej, wobec czego zostanie nadpisana przez następne
wywołanie funkcji.
W odróżnieniu od
strptime(3), (która posiada
argument
format),
getdate() posługuje się
formatami znajdującymi się w pliku, do którego
pełna ścieżka jest podana w zmiennej środowiskowej
DATEMSK. Do konwersji stosowana jest pierwsza z linii pliku,
która pasuje do zadanego łańcucha.
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.
Specyfikacje przekształceń, które mogą być
zawarte we wzorcu są takie same, jak dla
strptime(3).
Akceptowana jest jedna dodatkowa specyfikacja przekształcenia:
- %Z
- Nazwa strefy czasowej.
Gdy podano
%Z, zwracana wartość jest inicjalizowana jako
rozłożony czas bieżący w podanej strefie czasowej.
W przeciwnym przypadku, jest inicjalizowana jako rozłożony czas
odpowiadający bieżącemu czasowi lokalnemu.
Gdy podany jest tylko dzień tygodnia, brany jest pierwszy taki
dzień przypadający w dniu bieżącym lub
później.
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.
Gdy nie podano godziny, minuty ani sekundy, brana jest bieżąca
godzina, minuta i sekunda.
Gdy nie podano daty, ale znana jest godzina, brana jest pierwsza taka godzina
przypadająca w bieżącej godzinie lub
później.
WARTOŚĆ ZWRACANA¶
Po pomyślnym zakończeniu funkcja ta zwraca wskaźnik do
struktury
struct tm. W przeciwnym razie, zwraca NULL i ustawia
zmienną globalną
getdate_err. Zmiany
errno nie
są określone. Zdefiniowano następujące
wartości
getdate_err:
- 1
- Zmienna środowiska DATEMSK ma wartość pustą
lub nie jest zdefiniowana.
- 2
- Nie udało się otworzyć pliku wzorców w trybie
do odczytu.
- 3
- Nie udało się pobrać informacji o stanie.
- 4
- Plik wzorców nie jest zwykłym plikiem.
- 5
- Wystąpił błąd podczas odczytu pliku
wzorców.
- 6
- Nie udało się przydzielić pamięci (brak
dostępnej pamięci).
- 7
- Brak w pliku linii pasującej do podanych danych.
- 8
- Niewłaściwa specyfikacja wejściowa.
UWAGI¶
Jako że funkcja
getdate() nie jest wielowejściowa ze
względu na korzystanie z
getdate_err i statycznego bufora do
zwracania wyniku, glibc udostępnia jej wariant przystosowany do
wielowątkowości. Obie funkcje zapewniają tę
samą funkcjonalność. Wynik jest zwracany w buforze
wskazywanym przez
res, a w przypadku błędu, zwracana jest
niezerowa wartość, taka sama jak podano powyżej dla
getdate_err.
Specyfikacja POSIX 1003.1-2001 dla
strptime() zawiera specyfikacje
przekształceń korzystające z modyfikatorów
%E lub
%O, podczas gdy takie specyfikacje nie zostały
podane dla
getdate(). Implementacja w glibc realizuje
getdate()
za pomocą
strptime(), więc, automatycznie, obie funkcje
wspierają te same specyfikacje przekształceń.
Implementacja w glibc nie wspiera specyfikacji przekształcenia
%Z.
ŚRODOWISKO¶
- DATEMSK
- Plik zawierający wzorce formatów.
- TZ, LC_TIME
- Zmienne używane przez strptime().
ZGODNE Z¶
ISO 9899, POSIX 1003.1-2001
ZOBACZ TAKŻE¶
localtime(3),
strftime(3),
strptime(3),
time(3)
Powyższe tłumaczenie pochodzi z nieistniejącego już
Projektu Tłumaczenia Manuali i
może nie być
aktualne. W razie zauważenia różnic między
powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub
funkcji, prosimy o zapoznanie się z oryginalną
(angielską) wersją strony podręcznika za pomocą
polecenia:
- man --locale=C 3 getdate
Prosimy o pomoc w aktualizacji stron man - więcej informacji można
znaleźć pod adresem
http://sourceforge.net/projects/manpages-pl/.