getenv(3) Library Functions Manual getenv(3) NAZWA getenv, secure_getenv - odczytuje zmienna srodowiska BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include char *getenv(const char *name); char *secure_getenv(const char *name); Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)): secure_getenv(): _GNU_SOURCE OPIS Funkcja getenv() przeszukuje srodowisko, poszukujac zmiennej srodowiskowej name i zwraca wskaznik do odpowiedniego lancucha value. Typowa dla GNU funkcja secure_getenv() dziala w ten sam sposob jak getenv() z ta roznica, ze zwraca NULL w przypadkach, gdy wymagane jest ,,bezpieczne wykonanie". Bezpieczne wykonanie jest wymagane, gdy spelniony jest jeden z ponizszych warunkow w momencie, gdy ladowany byl program uruchomiony przez wywolujacy proces: o efektywny identyfikator uzytkownika procesu nie jest zgodny z jego rzeczywistym identyfikatorem uzytkownika albo efektywny identyfikator grupy procesu nie jest zgodny z jego rzeczywistym identyfikatorem grupy (zwykle jest to wynik uruchomienia programu set-user-ID lub set-group-ID); o na pliku wykonywalnym ustawiono efektywny bit przywilejow (ang. capability); albo o proces mial niepusty zbior przywilejow dozwolonych. Bezpieczne wykonanie moze byc rowniez wymagane, gdy zostalo wyzwolone przez pewne moduly zabezpieczen Linuksa. Funkcja secure_getenv() jest przeznaczona do uzycia w bibliotekach ogolnego zastosowania, aby uniknac zagrozen zwiazanych z przypadkowym zaufaniem srodowisku przez programy set-user-ID lub set-group-ID. WARTOSC ZWRACANA Funkcja getenv() zwraca wskaznik do wartosci w srodowisku lub NULL, gdy zmiennej nie znaleziono. ATRYBUTY Informacje o pojeciach uzywanych w tym rozdziale mozna znalezc w podreczniku attributes(7). +-----------------------+--------------------------+-------------------+ |Interfejs | Atrybut | Wartosc | +-----------------------+--------------------------+-------------------+ |getenv(), | Bezpieczenstwo watkowe | MT-bezpieczne env | |secure_getenv() | | | +-----------------------+--------------------------+-------------------+ STANDARDY getenv() C11, POSIX.1-2008. secure_getenv() GNU. HISTORIA getenv() POSIX.1-2001, C89, C99, SVr4, 4.3BSD. secure_getenv() glibc 2.17. UWAGI Lancuch w liscie srodowiska ma postac name=value. Zgodnie z typowa implementacja, getenv() zwraca wskaznik do lancucha wewnatrz listy srodowiska. Wywolujacy musi zwrocic uwage, aby nie zmodyfikowac tego lancucha, gdyz zmieniloby to srodowisko procesu. Implementacja getenv() nie musi byc wielobiezna. Lancuch, na ktory wskazuje wartosc zwracana przez getenv(), moze byc zaalokowany statycznie i moze byc modyfikowany przez kolejne wywolania do getenv(), putenv(3), setenv(3) lub unsetenv(3). Tryb ,,bezpiecznego wykonania" secure_getenv() jest kontrolowany przez znacznik AT_SECURE zawarty w pomocniczym wektorze przekazywanym z jadra do przestrzeni uzytkownika. ZOBACZ TAKZE clearenv(3), getauxval(3), putenv(3), setenv(3), unsetenv(3), capabilities(7), environ(7) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Andrzej Krzysztofowicz i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.9.1 2 maja 2024 r. getenv(3)