当我使用setenv设置环境值时,os.Getenv无法获得它。有人可以告诉我为什么吗?
package main
/*
#include <stdlib.h>
#include <stdio.h>
*/
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
答案 0 :(得分:0)
这是<!DOCTYPE html>
<html>
<head>
<title>Tetris</title>
</head>
<body>
<canvas id="tetris" width="240" height="400"></canvas>
<script src="tetris.js"></script>
</body>
</html>
的功能。
在源文件syscall/env_unix.go
中,我们看到在程序初始化阶段(Getenv
)中已复制了环境变量。
如果使用C函数在后台修改程序环境变量,则不会更新此副本。
很遗憾,此功能无法解决。