Čtení proměnných prostředí v jazyce C: Porovnání verzí

Z Milan Kerslager
Přejít na: navigace, hledání
(Založení stránky)
 
m (-nadpis)
Řádka 1: Řádka 1:
== Čtení proměnných prostředí v jazyce C ==
 
 
 
Proměnné prostředí jsou speciální proměnné, které se dědí do nových procesů – potomků. S jejich pomocí mohou rodičovské procesy předávat potomkům užitečné informace. Pokud v příkazovém řádku (shell) nastavíme proměnnou, je známa jen a právě v tom shellu, ve kterém jsme ji použili. Pokud pak spustíme nějaký program nebo shellový skript, proměnná již nebude dostupná, protože spuštěný program je potomkem shellu.
 
Proměnné prostředí jsou speciální proměnné, které se dědí do nových procesů – potomků. S jejich pomocí mohou rodičovské procesy předávat potomkům užitečné informace. Pokud v příkazovém řádku (shell) nastavíme proměnnou, je známa jen a právě v tom shellu, ve kterém jsme ji použili. Pokud pak spustíme nějaký program nebo shellový skript, proměnná již nebude dostupná, protože spuštěný program je potomkem shellu.
  

Verze z 22. 2. 2008, 17:02

Proměnné prostředí jsou speciální proměnné, které se dědí do nových procesů – potomků. S jejich pomocí mohou rodičovské procesy předávat potomkům užitečné informace. Pokud v příkazovém řádku (shell) nastavíme proměnnou, je známa jen a právě v tom shellu, ve kterém jsme ji použili. Pokud pak spustíme nějaký program nebo shellový skript, proměnná již nebude dostupná, protože spuštěný program je potomkem shellu.

Chceme-li nějakou proměnnou dědit do procesů potomků, musíme ji v shellu tzv. vyexportovat, aby se z ní stala proměnná prostředí. Tímto způsobem se standardně ovlivňuje například barevné podání výpisů souborů v adresáři pomocí příkazu ls (proměnná LS_COLORS), jaký editor se má spustit v programech mutt, crontab atp. (proměnné VISUAL nebo EDITOR).

Proměnnou můžeme exportovat ihned při jejím naplnění (řádek 1) nebo dodatečně bez vlivu na její obsah (řádek 2 až 3).

    1  export CISLO=69
    2  BAF="Nejaky text"
    3  export BAF

Následující program vypíše obsah proměnné BAF nebo napíše, že proměnná není definována. Používá k tomu funkci getenv().

    1  #include <stdio.h>
    2  #include <stdlib.h>
    3  int main()
    4  {
    5    char *pointer;
    6    pointer = getenv("BAF");
    7    if (pointer == NULL) {
    8      printf("Promenna BAF neexistuje\n");
    9    } else {
   10      printf("Promenna BAF obsahuje: %s\n", pointer);
   11    }
   12    return 0;
   13  }