Čtení proměnných prostředí v jazyce C: Porovnání verzí
(Založení stránky) |
m (-nadpis) |
||
Řádka 1: | Řádka 1: | ||
− | |||
− | |||
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 }