Título: Cambiar variables de entorno en Linux Publicado por: 0xDani en 21 Octubre 2012, 16:06 pm La duda es: ¿como se cambia una variable de entorno en linux mediante codigo C/C++? A ser posible sin tener que llamar a system().
Saludos. Título: Re: Cambiar variables de entorno en Linux Publicado por: yoxter en 21 Octubre 2012, 17:18 pm hasta donde se la mayoria de archivos que contienen variables de entorno estan en /etc/env.d
Código
otros distros y unix-like como Gentoo y FreeBSD almacenan casi todos las Flags de compilacion en el /etc/make.conf si Logras editar estos archivos desde tu programa usando fstream o alguna otra libreria deberia bastar Pasate por aqui : http://www.gentoo.org/doc/es/handbook/handbook-x86.xml?part=2&chap=5 (http://www.gentoo.org/doc/es/handbook/handbook-x86.xml?part=2&chap=5) Título: Re: Cambiar variables de entorno en Linux Publicado por: Lambda en 21 Octubre 2012, 18:12 pm http://pubs.opengroup.org/onlinepubs/007904975/functions/setenv.html
Título: Re: Cambiar variables de entorno en Linux Publicado por: Foxy Rider en 22 Octubre 2012, 06:20 am hasta donde se la mayoria de archivos que contienen variables de entorno estan en /etc/env.d Código
otros distros y unix-like como Gentoo y FreeBSD almacenan casi todos las Flags de compilacion en el /etc/make.conf si Logras editar estos archivos desde tu programa usando fstream o alguna otra libreria deberia bastar Pasate por aqui : http://www.gentoo.org/doc/es/handbook/handbook-x86.xml?part=2&chap=5 (http://www.gentoo.org/doc/es/handbook/handbook-x86.xml?part=2&chap=5) 1) /etc/env.d no es estándar, se usa sólo en Gentoo si no me falla la memoria ... si otra distro le usa, sigue siendo no-estándar 2) Si la pregunta hubiese sido cambiar variables de entorno en un lenguaje de scripting o durante el start-up del sistema, lo hubiese posteado en Unix/Unix-Like ... no, está en C/C++ 3) /etc/make.conf es un fichero muy específico de metadistro (el nombre te sugiere eso ... "make", es el fichero que conduce la compilación de paquetes del sistema, no está pensado para variables fuera de eso) 4) Como Lambda bien dijo, está setenv() (http://pubs.opengroup.org/onlinepubs/9699919799/functions/setenv.html) y getenv() (http://pubs.opengroup.org/onlinepubs/9699919799/functions/getenv.html) para usarse en C/C++ (el subforo donde estás) Saludos. Título: Re: Cambiar variables de entorno en Linux Publicado por: 0xDani en 22 Octubre 2012, 16:25 pm Es que el otro dia encontre el truco de la variable de entorno LD_PRELOAD: http://systemadmin.es/2009/09/capturar-llamadas-al-sistema-con-ld_preload / http://jjmora.es/sabias-que-la-variable-ld_preload/ y lo estuve probando cambiando esta variable desde la terminal, y no sabia como hacerlo desde codigo. Gracias y saludos ;)
EDITO: He echo un pequeño codigo de prueba: Código
Y en la terminal: Código: $ gcc prueba.c -o prueba |