登录
首页 >  Golang >  Go问答

获取环境值遇到问题

来源:stackoverflow

时间:2024-02-21 20:00:24 258浏览 收藏

从现在开始,努力学习吧!本文《获取环境值遇到问题》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

当我使用setenv设置环境值时,os.getenv无法获取它。谁能告诉我为什么?

package main
/*
#include 
#include 
*/
import "c"

import "os"
import "strings"
import "fmt"

func main()  {
    c.setenv(c.cstring("cset"), c.cstring("1.1.1.1:1111"), c.int(1)) //call setenv 
    c.puts(c.getenv(c.cstring("cset")))  // call getenv

    addrs := strings.split(os.getenv("cset"), ";")
    fmt.printf("addrs = %v\n", addrs)

    os.setenv("goset", "2.2.2.2:2222")
    c.puts(c.getenv(c.cstring("goset")))
}
dingrui@dingrui-PC:~/Projects/Temp$ go run env.go 
1.1.1.1:1111
addrs = []
2.2.2.2:2222

解决方案


这是 Getenv功能

在源文件syscall/env_unix.go中,我们看到在程序初始化阶段制作了环境变量的副本(envs []string = runtime_envs())。

如果您使用 C 函数在后台修改程序环境变量,则此副本不会更新。

不幸的是,没有办法绕过这个功能。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《获取环境值遇到问题》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>