in un ambiente Linux (nel mio caso XUbuntu), c'è un modo per scoprire quali variabili d'ambiente sono accessibili da un comando che viene eseguito dalla console?Scopri quali variabili d'ambiente usate da un comando
Deve essere possibile scoprire queste variabili, poiché qualcuno deve fornire i valori al programma. Ma c'è qualche metodo predefinito per farlo?
Il programma in questione è xprintidle.
Grazie in anticipo, Jost
Qualcosa del genere sembra essere la strada da percorrere, ma c'è un problema: non ci sono chiamate a getenv, ma so per certo che si accede a una variabile d'ambiente (in una chiamata alla biblioteca). Tuttavia, usando strace ottengo "execve ("/usr/bin/xprintidle ", [" xprintidle "], [/ * 41 vars * /])" come prima chiamata. Ciò significa che le variabili non vengono recuperate tramite getenv? – Jost
No - 'execve()' è sempre il modo in cui i programmi vengono eseguiti ('execl()' e gli amici sono solo wrapper su di esso), e il suo terzo argomento è un array di puntatori di tutte le variabili di ambiente. Vedrai questa chiamata in ogni file di un programma eseguito. – fge
Ho menzionato ** ltrace ** not * strace *; non sono la stessa cosa! –