Consultas, desarrollo de programas y petición de presupuestos:

jueves, 12 de julio de 2012

Mostrar en pantalla el contenido de una variable de entorno o de sistema (HOME, PWD, etc) en C

Ejercicio:
Mostrar en pantalla el contenido de la variable HOME
Solucion 1:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
char *cadena; // solo nos vale un puntero
cadena=getenv("HOME"); // fijaros que no lleva $, el nombre de la variable es HOME
printf("Valor de la variable HOME: %s",cadena);
return 0;
}

Existe otra forma de conseguir los valores de las variables, sin conocer el nombre)
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv, char **env)
{
// el array bidereccional char **env, contiene todas las variables de entorno
int c=0;
while (env[c]){
// la lista de punturos env[c], cuando termina la lista da NULL, y el while se sale.
printf(“Variable de entorno: %s”,env[c]);
c++;
}
return 0;
}

Salida que genera:

Si compara la lista de variable de entornos con las de terminal, en el terminal hay muchas más. Ya que solo muestra las que han sido exportadas (estan puesta a disposición a todos mis procesos)
Exportar se hace:
$export nombre_variable



No hay comentarios:

Publicar un comentario