oracular (3) getenv.3.gz

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⟩.