Las variables de entorno de un proceso existen en el tiempo de ejecución, y no se almacenan en algún archivo más o menos. Se almacenan en la memoria propia del proceso (allí es donde se los transfiere a los niños). Pero hay un archivo virtual en
/proc/pid/environ
Este archivo muestra todas las variables de entorno que se han pasado al llamar el proceso (a menos que el proceso de sobrescribía esa parte de su memoria - la mayoría de los programas no lo hacen). El núcleo los hace visibles a través de ese archivo virtual. Uno puede enumerarlos. Por ejemplo, para ver las variables de proceso 3940, se puede hacer
cat /proc/3940/environ | tr '\0' '\n'
Cada variable está delimitada por un cero binario a partir de la siguiente. tr reemplaza el cero en una nueva línea.
¿Es esta información específica de Linux? – cletus
cletus, sí, creo que es específico de Linux, pero no sé. –
Cualquier cosa en '/ proc' debe presumirse que es específica del sistema operativo. Escribir programas que miren '/ proc' es una gran WTF para mí. – asveikau