clearenv(3) Library Functions Manual clearenv(3)

clearenv - czyści środowisko

Standardowa biblioteka C (libc, -lc)

#include <stdlib.h>
int clearenv(void);
Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

clearenv():

    /* glibc >= 2.19: */ _DEFAULT_SOURCE
        || /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE

Funkcja clearenv() czyści środowisko z wszystkich par nazwa-wartość i nadaje zewnętrznej zmiennej environ wartość NULL. Po tym wywołaniu nowe zmienne można dodać do środowiska za pomocą putenv(3) i setenv(3).

Funkcja clearenv() zwraca zero przy pomyślnym zakończeniu, a wartość niezerową w przypadku błędu.

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

Interfejs Atrybut Wartość
clearenv() Bezpieczeństwo wątkowe MT-niebezpieczne const:env

POSIX.1-2008.
Brak.

glibc 2.0. POSIX.1-2001.
glibc 2.0.

Różne warianty Uniksa (DG/UX, HP-UX, QNX, ...). POSIX.9 (przypięcia dla języka FORTRAN77). POSIX.1-1996 nie akceptował clearenv() ani putenv(3), ale zmienił zdanie i ujął te funkcje w wykazie w jednym z późniejszych wydań standardu (patrz §B.4.6.1). Jednakże, POSIX.1-2001 dodaje jedynie putenv(3) i odrzuca clearenv().

Na systemach na których clearenv() jest niedostępne, przypisanie


environ = NULL;

prawdopodobnie zrobi to samo.

Funkcja clearenv() może być przydatna w aplikacjach dbających o bezpieczeństwo, które chcą dokładnie kontrolować środowisko przekazywane do programów wykonywanych za pomocą exec(3). Aplikacje mogą to uczynić zaczynając od wyczyszczenia środowiska, a następnie dodawania wybranych zmiennych środowiskowych.

Proszę zauważyć, że głównym efektem działania clearenv() jest dostosowanie wartości wskaźnika environ(7); funkcja ta nie usuwa zawartości buforów zawierających definicje środowiska.

Na stronach podręcznika dla DG/UX i Tru64 jest napisane: Jeśli environ zostało zmodyfikowane przez cokolwiek innego niż funkcje putenv(3), getenv(3) lub clearenv(), to clearenv() zwróci błąd, pozostawiając niezmienione środowisko procesu.

getenv(3), putenv(3), setenv(3), unsetenv(3), environ(7)

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>, Robert Luberda <robert@debian.org> 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 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.

2 maja 2024 r. Linux man-pages 6.8