pub fn setenv(
variable: impl AsRef<OsStr>,
value: impl AsRef<OsStr>,
overwrite: bool
) -> Result<(), BoolError>
Expand description
Sets an environment variable. On UNIX, both the variable’s name and value can be arbitrary byte strings, except that the variable’s name cannot contain ‘=’. 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 setenv()
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 environ()
to get an environment array, modify that with
g_environ_setenv()
and g_environ_unsetenv()
, and then pass that
array directly to execvpe()
, spawn_async()
, or the like.
variable
ate::Value] of type dest_type
.
src_type
source type to be copied.
dest_type
destination type for copying.
Returns
true
if g_value_copy()
is possible with src_type
and dest_type
.