#include #include extern char ** environ; int main(int argc, char* argv[], char* envp[]) { char* v[2]; char* newenv[3]; if (argc < 2) return -1; // Construct the argument array v[0] = "/usr/bin/env"; v[1] = NULL; // Construct the environment variable array newenv[0] = "AAA=aaa"; newenv[1] = "BBB=bbb"; newenv[2] = NULL; switch(argv[1][0]) { case '1': // Passing no environment variable. execve(v[0], v, NULL); case '2': // Passing a new set of environment variables. execve(v[0], v, newenv); case '3': // Passing all the environment variables. execve(v[0], v, environ); default: execve(v[0], v, NULL); } }