函数
GLibsetenv
自:2.4
声明 [源代码]
gboolean
g_setenv (
const gchar* variable,
const gchar* value,
gboolean overwrite
)
说明 [源代码]
设置环境变量。在 UNIX 上,变量名称和值均可以是任意字节字符串,但变量名不能包含“=”。在 Windows 上,它们应采用 UTF-8。
注意,在某些系统上,覆盖变量时,不会回收用于前一个变量及其值所使用的内存。
你应意识到,UNIX 中的环境变量处理方式并非线程安全,如果一个线程调用 g_setenv()
而另一个线程同时调用 getenv(),你的程序可能会崩溃。(注意,许多函数(例如 gettext())都内调用 getenv()
。)只有在程序开始时,且在创建任何其他线程(或创建将创建自身工作线程的对象)之前,使用此函数才是安全的。
如果需要为子进程设置环境,则可以使用 g_get_environ()
获取环境数组,通过 g_environ_setenv()
和 g_environ_unsetenv() 对其进行修改,然后直接将该数组传递到 execvpe()、g_spawn_async() 或类似函数。
自 2.4 起可用