GETENV(3C) Standard C Library Functions GETENV(3C)

NAME


getenv, secure_getenv - return value for environment name

LIBRARY


Standard C Library (libc, -lc)

SYNOPSIS


#include <stdlib.h>

char *
getenv(const char *name);

char *
secure_getenv(const char *name);

DESCRIPTION


The getenv() function searches the environment list (see environ(7))
for a string of the form name=Value and, if the string is present,
returns a pointer to the value in the current environment.

The secure_getenv() function behaves similarly; however, evaluates the
conditions that the process was executed under. If the process was
executed in a way that it is considered setuid, setgid, or raised its
privileges, that is the issetugid(2) function would return true, then
the secure_getenv() function will always return NULL. This is designed
for programs that want to ensure they do not trust potentially
malicious user input while executed with elevated capabilities. In all
other respects, the secure_getenv() function is identical to the
getenv() function.

RETURN VALUES


If successful, the getenv() and secure_getenv() functions return a
pointer to the value in the current environment; otherwise, they
returns a NULL pointer.

USAGE


The getenv() function can be safely called from a multithreaded
application. Care must be exercised when using both getenv() and
putenv(3C) in a multithreaded application. These functions examine and
modify the environment list, which is shared by all threads in an
application. The system prevents the list from being accessed
simultaneously by two different threads. It does not, however, prevent
two threads from successively accessing the environment list using
getenv() or putenv(3C)

INTERFACE STABILITY


Committed

MT-LEVEL
Safe

SEE ALSO


exec(2), issetugid(2), putenv(3C), attributes(7), environ(7),
standards(7)

illumos January 19, 2025 illumos

tribblix@gmail.com :: GitHub :: Privacy