clearenv - clear the environment
Feature Test Macro Requirements for glibc (see feature_test_macros
/* Glibc since 2.19: */ _DEFAULT_SOURCE
|| /* Glibc versions <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE
() function clears the environment of all name-value pairs
and sets the value of the external variable environ
to NULL. After this
call, new variables can be added to the environment using putenv
() function returns zero on success, and a nonzero value on
Available since glibc 2.0.
For an explanation of the terms used in this section, see attributes
Various UNIX variants (DG/UX, HP-UX, QNX, ...). POSIX.9 (bindings for
FORTRAN77). POSIX.1-1996 did not accept clearenv
(3), but changed its mind and scheduled these functions for some
later issue of this standard (see §B.4.6.1). However, POSIX.1-2001 adds
(3), and rejected clearenv
On systems where clearenv
() is unavailable, the assignment
environ = NULL;
will probably do.
() function may be useful in security-conscious applications
that want to precisely control the environment that is passed to programs
executed using exec
(3). The application would do this by first clearing
the environment and then adding select environment variables.
Note that the main effect of clearenv
() is to adjust the value of the
(7); this function does not erase the contents of the
buffers containing the environment definitions.
The DG/UX and Tru64 man pages write: If environ
has been modified by
anything other than the putenv
() functions, then clearenv
() will return an error and
the process environment will remain unchanged.