windows.Environ() 字符串 [0] 和 [1]
windows.Environ() strings [0] and [1]
我对 "windows.Environ()" 在 Windows pro 7 系统(go 版本 go1.8 windows/amd64)上返回的前 2 个字符串感到困惑。 env[0] 显然有一个键“=::”; env[1] 有一个键“=C:”。谁能指出我在哪里记录?提前致谢。
str_EnvStrs := windows.Environ()
//
// str_EnvStrs[0] == '=::=::\'
fmt.Printf("str_EnvStrs[0] == '%v'\n",str_EnvStrs[0])
//
// str_EnvStrs[1] == '=C:=C:\Users\(WINLOGIN)\Documents\Source\go\src
// \github.com\(GITLOGIN)\maps_arrays_slices'
fmt.Printf("str_EnvStrs[1] == '%v'\n",str_EnvStrs[1])
相关的Go代码是:
func Environ() []string {
s, e := GetEnvironmentStrings()
if e != nil {
return nil
}
defer FreeEnvironmentStrings(s)
r := make([]string, 0, 50) // Empty with room to grow.
for from, i, p := 0, 0, (*[1 << 24]uint16)(unsafe.Pointer(s)); true; i++ {
if p[i] == 0 {
// empty string marks the end
if i <= from {
break
}
r = append(r, string(utf16.Decode(p[from:i])))
from = i + 1
}
}
return r
}
代码正在使用 Windows GetEnvironmentStrings function. The values come from Windows. See the Microsoft Windows documentation of environment variables. Also, see What are these strange =C: environment variables?
我对 "windows.Environ()" 在 Windows pro 7 系统(go 版本 go1.8 windows/amd64)上返回的前 2 个字符串感到困惑。 env[0] 显然有一个键“=::”; env[1] 有一个键“=C:”。谁能指出我在哪里记录?提前致谢。
str_EnvStrs := windows.Environ()
//
// str_EnvStrs[0] == '=::=::\'
fmt.Printf("str_EnvStrs[0] == '%v'\n",str_EnvStrs[0])
//
// str_EnvStrs[1] == '=C:=C:\Users\(WINLOGIN)\Documents\Source\go\src
// \github.com\(GITLOGIN)\maps_arrays_slices'
fmt.Printf("str_EnvStrs[1] == '%v'\n",str_EnvStrs[1])
相关的Go代码是:
func Environ() []string {
s, e := GetEnvironmentStrings()
if e != nil {
return nil
}
defer FreeEnvironmentStrings(s)
r := make([]string, 0, 50) // Empty with room to grow.
for from, i, p := 0, 0, (*[1 << 24]uint16)(unsafe.Pointer(s)); true; i++ {
if p[i] == 0 {
// empty string marks the end
if i <= from {
break
}
r = append(r, string(utf16.Decode(p[from:i])))
from = i + 1
}
}
return r
}
代码正在使用 Windows GetEnvironmentStrings function. The values come from Windows. See the Microsoft Windows documentation of environment variables. Also, see What are these strange =C: environment variables?