Estoy tratando de actualizar la variable PATH a través de un programa en c, pero cuando intento actualizarla, surgen los problemas. Probé system("source .profile") y execlp("source", "source", ".profile", NULL) pero ninguno de ellos funciona, no sé cómo hacer que se ejecute para que la RUTA se actualice. ¿Alguien tiene una idea sobre esto? Gracias.
Puede usar la función setenv en stdlib.h para establecer variables de entorno
La función setenv() agrega el nombre de la variable al entorno con el valor del valor, si el nombre aún no existe. Si el nombre existe en el entorno, entonces su valor se cambia a valor si sobrescribir es distinto de cero; si overwrite es cero, entonces el valor de name no cambia (y setenv() devuelve un estado de éxito). Esta función hace copias de las cadenas apuntadas por nombre y valor (en contraste con putenv(3)).
La función unsetenv() elimina el nombre de la variable del entorno. Si el nombre no existe en el entorno, la función tiene éxito y el entorno no cambia.