Le variabili di ambiente di un processo esistono in fase di esecuzione e non vengono memorizzate in alcun file o così. Sono memorizzati nella memoria del processo (è lì che vengono trasferiti ai bambini). Ma v'è un file virtuale in
/proc/pid/environ
Questo file mostra tutte le variabili di ambiente che sono stati passati quando si chiama il processo (a meno che il processo ha sovrascritto quella parte della sua memoria - la maggior parte dei programmi non lo fanno). Il kernel li rende visibili attraverso quel file virtuale. Si possono elencarli. Ad esempio per visualizzare le variabili di processo 3940, si può fare
cat /proc/3940/environ | tr '\0' '\n'
Ciascuna variabile è delimitata da uno zero binario da quello successivo. tr sostituisce lo zero in una nuova riga.
fonte
2009-02-10 13:17:12
Queste informazioni sono specifiche per Linux? – cletus
cleto, sì, penso che sia linux specifico, ma non lo so. –
Qualsiasi cosa in '/ proc' dovrebbe essere considerato specifico del sistema operativo. Scrivere programmi che guardano a '/ proc' è un grosso WTF per me. – asveikau