hasta donde se la mayoria de archivos que contienen variables de entorno estan en /etc/env.d
Gentoo yoxter # cd /etc/env.d
Gentoo env.d # ls
00basic 03opencl 05binutils 20java-config 37fontconfig 44qt4 50gtk2 60ladspa 80cgc 90nss 99gentoolkit-env gcc
00glibc 03opengl 09sandbox 30gnupg 43kdepaths 44qt4-graphicssystem 50ncurses 70less 80mercurial 90xdg-data-base 99oxygen-gtk2 python
02locale 04gcc-x86_64-pc-linux-gnu 20ant 30xdg-data-local 44qca2 50gconf 60blender 77kde 90games 98ca-certificates binutils
otros distros y unix-like como Gentoo y FreeBSD almacenan casi todos las Flags de compilacion en el
/etc/make.conf
si Logras editar estos archivos desde tu programa usando fstream o alguna otra libreria deberia bastar
Pasate por aqui :
http://www.gentoo.org/doc/es/handbook/handbook-x86.xml?part=2&chap=51) /etc/env.d no es estándar, se usa sólo en Gentoo si no me falla la memoria ... si otra distro le usa, sigue siendo no-estándar
2) Si la pregunta hubiese sido cambiar variables de entorno en un lenguaje de scripting o durante el start-up del sistema, lo hubiese posteado en Unix/Unix-Like ... no, está en C/C++
3) /etc/make.conf es un fichero muy específico de metadistro (el nombre te sugiere eso ... "make", es el fichero que conduce la compilación de paquetes del sistema, no está pensado para variables fuera de eso)
4) Como Lambda bien dijo, está
setenv() y
getenv() para usarse en C/C++ (el subforo donde estás)
Saludos.