environ

Autres langues

Langue: pl

Autres versions - même langue

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

Autres sections - même nom

Section: 5 (Format de fichier)

NAZWA

environ - ¶rodowisko u¿ytkownika

SK£ADNIA


extern char **environ;


OPIS

Zmienna environ wskazuje na tablicê ³añcuchów zwan± ,,¶rodowiskiem''. (Zmienna ta musi byæ zdefiniowana w programie u¿ytkownika, jednak¿e jest ona zadeklarowana w pliku nag³ówkowym unistd.h, w przypadku gdy plik ten pochodzi z libc4 lub libc5 oraz w przypadku gdy pochodzi on z glibc a zdefiniowano _GNU_SOURCE. Ta tablica ³añcuchów udostêpniana jest procesowi przez funkcjê exec(3) podczas jego uruchamiania. Zgodnie z konwencj± ³añcuchy znaków maj± postaæ ,,nazwa=warto¶æ''. Typowe przyk³ady to:
USER
Nazwa zalogowanego u¿ytkownika (wykorzystywana przez niektóre programy wywodz±ce siê z BSD).
LOGNAME
Nazwa zalogowanego u¿ytkownika (wykorzystywana przez niektóre programy wywodz±ce siê z Systemu V).
HOME
Katalog domowy u¿ytkownika, zmienna ustawiana przez program login(1) na podstawie informacji z pliku passwd(5).
LANG
Nazwa lokalizacji jaka ma byæ stosowana dla wszystkich kategorii lokalizacji, je¶li lokalizacja nie zosta³a narzucona przez zmienn± LC_ALL lub inne bardziej szczegó³owe zmienne, jak LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME, por. locale(5).
PATH
Ci±g katalogów które sh(1) oraz wiele innych programów przeszukuje w poszukiwaniu plików, których nazwa nie zawiera pe³nej ¶cie¿ki dostêpu. Poszczególne katalogi s± rozdzielane znakiem ,,:''. (Podobnie, CDPATH jest u¿ywane przez niektóre pow³oki do poszukiwania katalogu docelowego dla polecenia zmiany katalogu, a MANPATH jest u¿ywane przez man(1) do poszukiwania stron podrêcznika, itd.)
PWD
Aktualny katalog roboczy. Ustawiane przez niektóre pow³oki.
SHELL
Nazwa pow³oki zg³oszeniowej u¿ytkownika.
TERM
Rodzaj terminala dla którego system ma przygotowywaæ wyj¶cie.
PAGER
Wybrane przez u¿ytkownika narzêdzie do wy¶wietlania plików tekstowych.
EDITOR/VISUAL
Wybrane przez u¿ytkownika narzêdzie do edycji plików tekstowych.
BROWSER
Wybrane przez u¿ytkownika narzêdzie do sprawdzania adresów URL. Jest to ci±g rozdzielonych dwukropkami poleceñ wywo³uj±cych przegladarki. Zobacz http://www.tuxedo.org/~esr/BROWSER/ .

Dalsze nazwy mog± byæ umieszczane w ¶rodowisku za pomoc± polecenia export i ,,nazwa=warto¶æ'' w przypadku stosowania pow³oki typu sh(1) lub polecenia setenv w przypadku pow³oki typu csh(1). W ¶rodowisku mog± byæ równie¿ umieszczane argumenty w momencie wykonywania funkcji exec(3). Program napisany w C mo¿e manipulowaæ ¶rodowiskiem za pomoc± funkcji getenv(3), putenv(3), setenv(3) i unsetenv(3).

Trzeba zauwa¿yæ, ¿e obecno¶æ lub warto¶ci pewnych zmiennych ¶rodowiska maj± wp³yw na zachowanie wielu programów i funkcji bibliotecznych. Przypadkowy zbiór:

Zmienne LANG, LANGUAGE, NLSPATH, LOCPATH, LC_ALL, LC_MESSAGES, itd. wp³ywaj± na obs³ugê lokalizacji, por. locale(5).

TMPDIR wp³ywa na prefiks ¶cie¿ki w nazwach tworzonych przez tmpnam(3) i inne funkcje, katalog tymczasowy wykorzystywany przez sort(1) i inne programy, itd.

LD_LIBRARY_PATH, LD_PRELOAD i inne zienne LD_* wp³ywaj± na zachowanie programu ³aduj±cego/konsolidatora bibliotek dynamicznych.

POSIXLY_CORRECT powoduje, ¿e niektóre programy i funkcje biblioteczne przestrzegaj± zaleceñ POSIX.

Na zachowanie malloc(3) wp³ywaj± zmienne MALLOC_*.

Zmienna HOSTALIASES okre¶la nazwê pliku zawieraj±cego aliasy, z których ma korzystaæ gethostbyname(3).

TZ i TZDIR podaj± informacje o strefie czasowej wykorzystywan± przez tzset(3) i przez funkcje takie jak ctime(), localtime(), mktime(), strftime(). Zobacz tak¿e tzselect(1).

TERMCAP podaje informacje o tym, jak adresowaæ okre¶lony terminal (lub podaje nazwê pliku zawieraj±cego te informacje).

COLUMNS i LINES mówi± aplikacjom o rozmiarze okna, ewentualnie narzucaj±c warto¶ci inne ni¿ rzeczywiste rozmiary.

PRINTER lub LPDEST mog± okre¶laæ drukarkê, która powinna byæ u¿ywana. Zobacz lpr(1).

Itd.

B£ÊDY

Oczywi¶ci istnieje tu ryzyko naruszenia bezpieczeñstwa. Wiele poleceñ systemowych zosta³o oszukanych w celu wyrz±dzenia szkody przez u¿ytkownika, który nada³ nietypowe warto¶ci zmiennym IFS lub LD_LIBRARY_PATH.

Istnieje równie¿ ryzyko ska¿enia przestrzeni nazw. Programy takie, jak make i autoconf pozwalaj± na nadpisywanie domy¶lnych nazw programów narzêdziowych poprzez ¶rodowisko zawieraj±ce zmienne o nazwach podobnych do nazw tych programów, ale sk³adaj±cych sie wy³±cznie z wielkich liter. Zatem u¿uwa siê CC Do okre¶lenia po¿±danego kompilatora C (i podobnie MAKE, AR, AS, FC, LD, LEX, RM, YACC, itd.). Jednak¿e, w niektórych tradycyjnych zastosowaniach takie zmienne ¶rodowiskowe podaj± opcje dla programów zamiast ¶cie¿ki. Zatem mamy MORE, LESS i GZIP. Takie zastosowanie jest traktowane jako b³êdne i nale¿y go unikaæ w nowych programach. Autorzy programu gzip powinni rozwa¿yæ zmianê nazwy swojej opcji na GZIP_OPT.

ZOBACZ TAK¯E

login(1), sh(1), bash(1), csh(1), tcsh(1), execve(2), exec(3), getenv(3), putenv(3), setenv(3), clearenv(3), unsetenv(3), locale(5)