C++ getenv()

The getenv() function in C++ returns a pointer to a C string containing the value of the environment variable passed as argument.

If the environment variable passed to the getenv() function is not in the environment list, it returns a null pointer.

getenv() prototype

char* getenv( const char* env_var );

This function is defined in <cstdlib> header file.


getenv() Parameters

  • env_var: C string containing the name of the environment variable.

getenv() Return value

The getenv() function returns:

  • The value of the environment variable represented by env_var.
  • If the environment variable is not in the environment list, it returns a null pointer.

Example : How getenv() function works?

#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
	/* A list of possible environment variables*/
	const char *env_var[5] = {"PUBLIC","HOME","SESSIONNAME","LIB","SystemDrive"};
	char *env_val[5];

	for(int i=0; i<5; i++)
	{
		/* Getting environment value if exists */
		env_val[i] = getenv(env_var[i]);
		if (env_val[i] != NULL)
			cout << "Variable = " << env_var[i] << ", Value= " << env_val[i] << endl;
		else
			cout << env_var[i] << " doesn't exist" << endl;
	}
}

When you run the program, a possible output will be:

Variable = PUBLIC, Value= C:\Users\Public
HOME doesn't exist
Variable = SESSIONNAME, Value= Console
LIB doesn't exist
Variable = SystemDrive, Value= C:

Note: The output differs for different device. In order to see the list of all the environment variables and their values:

For Windows: type set and press enter on command prompt

For Linux: type env and press enter on terminal