catopen

Autres langues

Langue: pl

Autres versions - même langue

Version: 2001-12-14 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

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

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)