elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Cambiar variables de entorno en Linux
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cambiar variables de entorno en Linux  (Leído 3,739 veces)
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Cambiar variables de entorno en Linux
« 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.


En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
yoxter

Desconectado Desconectado

Mensajes: 48



Ver Perfil
Re: Cambiar variables de entorno en Linux
« Respuesta #1 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
  1. Gentoo yoxter # cd /etc/env.d
  2. Gentoo env.d # ls
  3. 00basic   03opencl                   05binutils  20java-config     37fontconfig  44qt4                 50gtk2     60ladspa  80cgc        90nss              99gentoolkit-env  gcc
  4. 00glibc   03opengl                   09sandbox   30gnupg           43kdepaths    44qt4-graphicssystem  50ncurses  70less    80mercurial  90xdg-data-base    99oxygen-gtk2     python
  5. 02locale  04gcc-x86_64-pc-linux-gnu  20ant       30xdg-data-local  44qca2        50gconf               60blender  77kde     90games      98ca-certificates  binutils
  6.  

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


« Última modificación: 21 Octubre 2012, 17:21 pm por yoxter » En línea




Posiblemente soy el intento de programador mas fracaso de la historia !!
Lambda


Desconectado Desconectado

Mensajes: 371



Ver Perfil WWW
Re: Cambiar variables de entorno en Linux
« Respuesta #2 en: 21 Octubre 2012, 18:12 pm »

http://pubs.opengroup.org/onlinepubs/007904975/functions/setenv.html
En línea

Foxy Rider


Desconectado Desconectado

Mensajes: 2.407


Deprecated


Ver Perfil WWW
Re: Cambiar variables de entorno en Linux
« Respuesta #3 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
  1. Gentoo yoxter # cd /etc/env.d
  2. Gentoo env.d # ls
  3. 00basic   03opencl                   05binutils  20java-config     37fontconfig  44qt4                 50gtk2     60ladspa  80cgc        90nss              99gentoolkit-env  gcc
  4. 00glibc   03opengl                   09sandbox   30gnupg           43kdepaths    44qt4-graphicssystem  50ncurses  70less    80mercurial  90xdg-data-base    99oxygen-gtk2     python
  5. 02locale  04gcc-x86_64-pc-linux-gnu  20ant       30xdg-data-local  44qca2        50gconf               60blender  77kde     90games      98ca-certificates  binutils
  6.  

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

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() y getenv() para usarse en C/C++ (el subforo donde estás)

Saludos.
En línea

0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Cambiar variables de entorno en Linux
« Respuesta #4 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
  1. #include <stdlib.h>
  2.  
  3. int main()
  4. {
  5.  setenv("LD_PRELOAD", "/home/user/libprueba.so", 1);
  6.  system("echo $LD_PRELOAD");
  7.  return 0;
  8. }

Y en la terminal:

Código:
$ gcc prueba.c -o prueba
./prueba
/home/user/libprueba.so //Hasta aqui bien
//Ahora saco por pantalla esta variable
echo $LD_PRELOAD
                               //En esta linea no sale nada, la variable ha cambiado su valor a 0 :(
$
« Última modificación: 22 Octubre 2012, 16:40 pm por 0xDani » En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con variables de entorno
Scripting
MK-Ultra 2 2,463 Último mensaje 10 Febrero 2008, 20:49 pm
por MK-Ultra
Variables de entorno
Programación Visual Basic
.;. 2 2,502 Último mensaje 10 Abril 2009, 20:50 pm
por .;.
Variables De Entorno !!! Ayuda
Windows
Puma93 2 3,363 Último mensaje 26 Agosto 2011, 17:20 pm
por Puma93
Variables de Entorno vb 2008
Programación Visual Basic
Odunacam 0 1,941 Último mensaje 5 Octubre 2011, 22:22 pm
por Odunacam
[SHELL Linux] Cómo definir muchas variables de entorno en base a un archivo?
Scripting
Skeletron 2 2,658 Último mensaje 14 Enero 2014, 22:02 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines