ENVIRON(7)

JMÉNO
environ - uživatelské prostředí

POUŽITÍ
extern char **environ;

POPIS
Proměnná environ odkazuje na pole řetězců nazývané "prostředí" (environment). (Tato proměnná musí být deklarována v uživatelském programu. Pouze v případě, že hlavičkové soubory pocházejí z libc4 nebo libc5, anebo pocházejí z glibc a zároveň je definováno _GNU_SOURCE , je proměnná deklarována v hlavičkovém souboru <unistd.h>). Toto pole řetězců je zpřístupněno procesu voláním exec(3) , které spustilo proces. Podle konvence mají tyto řetězce tvar "jméno=hodnota". Obvyklé případy:

USER
    Jméno přihlášeného uživatele (je používáno některými programy odvozenými z BSD).

LOGNAME
    Jméno přihlášeného uživatele (je používáno některými programy odvozenými z System-V).

HOME
    Uživatelův domovský adresář, který je nastaven při přihlášení programem login(1) ze souboru hesel passwd(5).

LANG
    Název locale které má být použito pro kategorie locale, pokud není nastaveno LC_ALL nebo konkrétnější proměnné prostředí jako LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME, viz locale(5).

PATH
    Seznam adresářů, které sh(1) a mnoho dalších programů používá při hledání souboru u něhož není známa kompletní cesta. Jednotlivé adresáře jsou odděleny ':'. (Podobně se CDPATH používá v některých shellech k nalezení cíle pro příkaz změny adresáře, man(1) používá MANPATH k nalezení manuálových stránek, atd.)

PWD Aktuální pracovní adresář. Nastavují jej některé shelly.

SHELL
    Cesta k login shellu uživatele.

TERM
    Typ terminálu, pro který má být připraven výstup.

PAGER
    Uživatelem preferovaná utilita pro zobrazení textových souborů.

EDITOR/VISUAL
    Uživatelem preferovaná utilita pro editování textových souborů.

Další jména mohou být do prostředí umístěna příkazem export a "jméno=hodnota" v sh(1) nebo příkazem setenv v csh(1). Argumenty mohou být umístěny do prostředí i při volání funkce exec(3). Program v C může manipulovat svým prostředím pomocí funkcí getenv(3), putenv(3), setenv(3), a unsetenv(3). Chování mnoha programů a knihovních rutin je ovlivněno přítomností nebo hodnotou určitých proměnných prostředí. Náhodný výběr:

Proměnné LANG, LANGUAGE, NLSPATH, LOCPATH, LC_ALL, LC_MESSAGES, atd. ovlivňují použití locale, srov. locale(5).

TMPDIR ovlivňuje prefix cesty u názvů, které vytváří tmpnam(3) a jiné rutiny, dočasný adresář, který používá sort(1) a jiné programy, atd.

LD_LIBRARY_PATH, LD_PRELOAD a další LD_* proměnné ovlivňují chování dynamického loaderu/linkeru.

POSIXLY_CORRECT způsobí, že se určité programy a knihovní rutiny drží předpisů POSIX.

Chování malloc(3) je ovlivněno proměnnými MALLOC_*.

Proměnná HOSTALIASES obsahuje název souboru, který obsahuje aliasy pro použití s gethostbyname(3).

TZ a TZDIR obsahují informaci o časové zóně, kterou používá tzset(3) a tím pádem i funkce jako ctime(3), localtime(3), mktime(3), strftime(3). Viz též tzselect(8).

TERMCAP obsahuje informaci o možnostech terminálu (nebo název souboru obsahujícího tuto informaci).

COLUMNS a LINES sdělují aplikacím velikost okna, bez ohledu na jeho skutečnou velikost.

PRINTER nebo LPDEST mohou určit tiskárnu, která má být použita. Viz lpr(1).

Atd.

CHYBY
Je zde jasné bezpečností riziko. Mnoho systémových příkazů může být svedeno k páchání škody uživatelem, který zadal zvláštní hodnoty pro IFS nebo LD_LIBRARY_PATH. Existuje také riziko kontaminace jmenného prostoru. Programy jako make a autoconf umožňují upřednostnit výchozí názvy utilit prostředí podobně pojmenovanými proměnnými zapsanými velkými písmeny. Takže se používá CC pro výběr požadovaného překladače C (a podobně i MAKE, AR, AS, FC, LD, LEX, RM, YACC, atd.). Nicméně při klasickém použití předává takováto proměnná prostředí programu volbu, nikoliv název soboru. Takže se používá MORE, LESS, a GZIP. Takovéto použití se pokládá za chybu a nové programy by se mu měly vyhýbat. Autoži programu gzip by měli zvážit přejmenování volby na GZIP_OPT.

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

TIRÁŽ
Tato stránka je součástí projektu Linux man-pages. Popis projektu a informace o hlášení chyb najdete na http://www.kernel.org/doc/man-pages/.