Sets an environment variable.
Both the variable's name and value should be in the GLib file name encoding. On UNIX, this means that they can be arbitrary byte strings. On Windows, they should be in UTF-8.
Note that on some systems, when variables are overwritten, the memory used for the previous variables and its value isn't reclaimed.
You should be mindful of the fact that environment variable handling in UNIX is not thread-safe, and your program may crash if one thread
calls set_variable while another thread is calling getenv
. (And note that many functions, such
as gettext
, call getenv
internally.) This function is only safe to use at the very start of your program, before
creating any other threads (or creating objects that create worker threads of their own).
If you need to set up the environment for a child process, you can use @get to get an
environment array, modify that with set_variable and
unset_variable, and then pass that array directly to execvpe
,
spawn_async, or the like.
variable |
the environment variable to set, must not contain '='. |
value |
the value for to set the variable to. |
overwrite |
whether to change the variable if it already exists. |
false if the environment variable couldn't be set. |