clearenv - czyszczenie środowiska
Standardowa biblioteka C (libc, -lc)
#include <stdlib.h>
int clearenv(void);
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)EN i setenv(3)EN.
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)EN.
| Interfejs | Atrybut | Wartość |
| clearenv() | Bezpieczeństwo wątkowe | MT-Unsafe const:env |
Różne warianty Uniksa (DG/UX, HP-UX, QNX, ...). POSIX.9 (bindings for FORTRAN77). POSIX.1-1996 nie akceptował clearenv() ani putenv(3)EN, 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)EN 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łównych efektem działania clearenv() jest dostosowanie wartości wskaźnika environ(7)EN; 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)EN, getenv(3)EN lub clearenv(), to clearenv() zwróci błąd, pozostawiając niezmienione środowisko procesu.
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.