Provided by: manpages-pl-dev_4.23.1-1_all bug

NAZWA

       getenv, secure_getenv - odczytuje zmienną środowiska

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

SKŁADNIA

       #include <stdlib.h>

       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 środowisko, poszukując zmiennej środowiskowej name i zwraca
       wskaźnik do odpowiedniego łańcucha value.

       Typowa dla GNU funkcja secure_getenv() działa w ten sam sposób jak getenv() z tą  różnicą,
       że  zwraca  NULL  w  przypadkach,  gdy  wymagane  jest  „bezpieczne wykonanie”. Bezpieczne
       wykonanie jest wymagane, gdy spełniony jest jeden z poniższych warunków  w  momencie,  gdy
       ładowany był program uruchomiony przez wywołujący proces:

       •  efektywny  identyfikator  użytkownika  procesu  nie  jest  zgodny  z  jego rzeczywistym
          identyfikatorem użytkownika 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);

       •  na pliku wykonywalnym ustawiono efektywny bit przywilejów (ang. capability); albo

       •  proces miał niepusty zbiór przywilejów dozwolonych.

       Bezpieczne wykonanie może być również wymagane, gdy zostało wyzwolone przez  pewne  moduły
       zabezpieczeń Linuksa.

       Funkcja  secure_getenv() jest przeznaczona do użycia w bibliotekach ogólnego zastosowania,
       aby uniknąć  zagrożeń  związanych  z  przypadkowym  zaufaniem  środowisku  przez  programy
       set-user-ID lub set-group-ID.

WARTOŚĆ ZWRACANA

       Funkcja  getenv()  zwraca  wskaźnik  do  wartości  w środowisku lub NULL, gdy zmiennej nie
       znaleziono.

ATRYBUTY

       Informacje  o  pojęciach  używanych  w  tym  rozdziale   można   znaleźć   w   podręczniku
       attributes(7).

       ┌────────────────────────────────────────────┬────────────────────────┬───────────────────┐
       │InterfejsAtrybutWartość           │
       ├────────────────────────────────────────────┼────────────────────────┼───────────────────┤
       │getenv(), secure_getenv()                   │ Bezpieczeństwo wątkowe │ MT-bezpieczne env │
       └────────────────────────────────────────────┴────────────────────────┴───────────────────┘

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

       Łańcuch w liście środowiska ma postać name=value.

       Zgodnie  z  typową  implementacją,  getenv()  zwraca  wskaźnik  do łańcucha wewnątrz listy
       środowiska. Wywołujący musi zwrócić  uwagę,  aby  nie  zmodyfikować  tego  łańcucha,  gdyż
       zmieniłoby to środowisko procesu.

       Implementacja  getenv()  nie  musi  być  wielobieżna.  Łańcuch,  na który wskazuje wartość
       zwracana przez getenv(), może być zaalokowany statycznie i  może  być  modyfikowany  przez
       kolejne wywołania 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 jądra do przestrzeni użytkownika.

ZOBACZ TAKŻE

       clearenv(3), getauxval(3), putenv(3), setenv(3), unsetenv(3), capabilities(7), environ(7)

TŁUMACZENIE

       Autorami polskiego tłumaczenia niniejszej strony podręcznika  są:  Andrzej  Krzysztofowicz
       <ankry@green.mf.pg.gda.pl> i Michał Kułach <michal.kulach@gmail.com>

       Niniejsze  tłumaczenie  jest  wolną  dokumentacją. Bliższe informacje o warunkach licencji
       można   uzyskać   zapoznając   się   z   GNU   General   Public   License   w   wersji   3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   lub   nowszej.   Nie  przyjmuje  się  ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy w tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej
       ⟨manpages-pl-list@lists.sourceforge.net⟩.