en un entorno Linux (en mi caso XUbuntu), ¿hay alguna manera de averiguar a qué variables de entorno se accede mediante un comando que se ejecuta desde la consola?Averigüe qué variables de entorno utiliza un comando
Debe ser posible conocer estas variables, ya que alguien debe proporcionar los valores al programa. Pero, ¿hay algún método predeterminado para hacer esto?
El programa en cuestión aquí es xprintidle.
Gracias de antemano, Jost
Parece que este es el camino a seguir, pero hay un problema: no hay llamadas a getenv, pero sé con certeza que se accede a una variable de entorno (en una llamada a la biblioteca). Sin embargo, usando strace obtengo "execve ("/usr/bin/xprintidle ", [" xprintidle "], [/ * 41 vars * /]) como primera llamada. ¿Eso quiere decir que las variables no se obtienen a través de getenv? – Jost
No - 'execve()' es siempre la forma en que se ejecutan los programas ('execl()' y los amigos son simplemente envoltorios sobre él), y su tercer argumento es una matriz de puntero de todas las variables de entorno. Verá esta llamada en todas y cada una de las etapas de un programa ejecutado. – fge
Mencioné ** ltrace ** not * strace *; ¡Ellos no son los mismos! –