NAZWA¶
catopen, catclose - otwarcie/zamknięcie katalogu komunikatów
SKŁADNIA¶
#include <nl_types.h>
nl_catd catopen(const char *name, int flag);
int catclose(nl_catd catalog);
OPIS¶
Uwaga! To tłumaczenie może być nieaktualne!
Funkcja
catopen() otwiera katalog komunikatów i zwraca deskryptor
tego katalogu. Deskryptor pozostaje ważny aż do wywołania
catclose() lub exec(). Jeśli w celu implementacji deskryptorów
katalogów, użyty zostanie deskryptor pliku, to zostanie ustawiony
znacznik FD_CLOEXEC.
Argument
name określa nazwę otwieranego katalogu
komunikatów. Jeśli
name jest ścieżką
bezwzględną (tzn. zawiera znak '/'), to
name wyznacza
ścieżkę do katalogu komunikatów. W przeciwnym wypadku
używana jest zmienna środowiskowa
NLSPATH z ciągiem
%N zastąpionym przez
name (zobacz
locale(7)). Nie
jest określone, czy zmianna
NLSPATH zostanie użyta, gdy
proces ma uprawnienia root-a. Jeśli zmienna
NLSPATH nie istnieje,
lub katalog komunikatów nie może zostać otwarty w żadnej
ze ścieżek przez nią określonych, to zostanie użyta
ściężka zależna od implementacji. Ta domyślna
ścieżka może zależeć od ustawienia locale
LC_MESSAGES gdy argument
flag jest równy
NL_CAT_LOCALE lub od zmiennej środowiskowej
LANG gdy
argument
flag jest równy 0. Zmiana części LC_MESSAGES
ustawień locale może unieważnić otwarte deskryptory
katalogów.
Argument
catopen() flag służy do wskazania
źródeł dla używanego języka. Jeśli ma
wartość
NL_CAT_LOCALE, to użyte zostanie
bieżące ustawienie locale dla
LC_MESSAGES. W przeciwnym
przypadku użyta zostanie zmienna środowiskowa
LANG.
Funkcja
catclose() zamyka katalog komunikatów określony przez
deskryptor
catalog. Unieważnia ona każde następne
odwołania do katalogu
catalog.
WARTOŚĆ ZWRACANA¶
Jeśli funkcja
catopen() zakończy się pomyślnie,
zwraca deskryptor katalogu komunikatow, który jest typu
nl_catd.
Jeśli funkcja zawiedzie, zwraca (nl_catd) -1 i ustawia
errno
wskazując rodzaj błędu. Możliwe wartości
błędów obejmują wszystkie możliwe wartości dla
wywołania
open().
Funkcja
catclose() zwraca 0 jeśli zakończy się
pomyślnie, a -1 w przeciwnym przypadku.
ŚRODOWISKO¶
- LC_MESSAGES
- Może stanowić źródło ustawienia
locale LC_MESSAGES i wówczas określa język używany,
gdy flag jest ustawione na NL_CAT_LOCALE.
- LANG
- Język używany, gdy flag wynosi 0.
UWAGI¶
Powyższe stanowi opis wg POSIX 1003.1-2001. Dla glibcwartość
NL_CAT_LOCALE wynosi 1. (Porównaj MCLoadAll poniżej.) Domyślna
ścieżka może być różna, ale zazwyczaj stanowi
kilka miejsc wewnątrz katalogu
/usr/share/locale.
UWAGI DLA LIBC4 I LIBC5¶
Funkcje te są dostępne w Linuksie od libc 4.4.4c. W przypadku
linuksowych libc4 i libc5, deskryptor katalogu
nl_catd, jest
odwzorowanym przez mmap() obszarem pamięci, a nie deskryptorem pliku.
Argument
catopen() flag Powinien być równy albo
MCLoadBySet (=0) albo
MCLoadAll (=1). Pierwsza z wartości
wskazuje, że zestaw z katalogu ma być załadowany, gdy
będzie to potrzebne, podczas gdy druga z nich powoduje, że pierwsze
wywołanie
catopen() załaduje cały katalog do poamieci.
Domyślna ścieżka przeszukiwania może być
różna, ale zazwyczaj stanowi kilka miejsc wewnątrz
katalogów
/etc/locale i
/usr/lib/locale.
ZGODNE Z¶
POSIX 1003.1-2001. W XPG 1987, Vol. 3 mówi on:
Argument flag funkcji
catopen jest zarezerwowany do wykorzystania w przyszłości i
powinien być ustawiony na 0. Nie jest jasne, co było
źródłem dla stałych MCLoadBySet i MCLoadAll.
ZOBACZ TAKŻE¶
catgets(3),
setlocale(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 catopen
Prosimy o pomoc w aktualizacji stron man - więcej informacji można
znaleźć pod adresem
http://sourceforge.net/projects/manpages-pl/.