clearenv(3) — Linux manual page


clearenv(3)             Library Functions Manual             clearenv(3)

NAME         top

       clearenv - clear the environment

LIBRARY         top

       Standard C library (libc, -lc)

SYNOPSIS         top

       #include <stdlib.h>

       int clearenv(void);

   Feature Test Macro Requirements for glibc (see

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

DESCRIPTION         top

       The clearenv() 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(3) and setenv(3).

RETURN VALUE         top

       The clearenv() function returns zero on success, and a nonzero
       value on failure.

ATTRIBUTES         top

       For an explanation of the terms used in this section, see
       │ Interface               Attribute     Value               │
       │ clearenv()              │ Thread safety │ MT-Unsafe const:env │

STANDARDS         top



HISTORY         top

              glibc 2.0.  POSIX.1-2001.

              glibc 2.0.

       Various UNIX variants (DG/UX, HP-UX, QNX, ...).  POSIX.9
       (bindings for FORTRAN77).  POSIX.1-1996 did not accept clearenv()
       and putenv(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 only putenv(3), and rejected clearenv().

NOTES         top

       On systems where clearenv() is unavailable, the assignment

           environ = NULL;

       will probably do.

       The clearenv() 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 pointer environ(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(3), getenv(3), or clearenv()
       functions, then clearenv() will return an error and the process
       environment will remain unchanged.

SEE ALSO         top

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

COLOPHON         top

       This page is part of the man-pages (Linux kernel and C library
       user-space interface documentation) project.  Information about
       the project can be found at 
       ⟨⟩.  If you have a bug report
       for this manual page, see
       This page was obtained from the tarball man-pages-6.9.1.tar.gz
       fetched from
       ⟨⟩ on
       2024-06-26.  If you discover any rendering problems in this HTML
       version of the page, or you believe there is a better or more up-
       to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not
       part of the original manual page), send a mail to

Linux man-pages 6.9.1          2024-05-02                    clearenv(3)

Pages that refer to this page: getenv(3)putenv(3)setenv(3)environ(7)