cubefs

Форк
0
/x
/
env_windows.go 
54 строки · 1.2 Кб
1
// Copyright 2010 The Go Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style
3
// license that can be found in the LICENSE file.
4

5
// Windows environment variables.
6

7
package windows
8

9
import (
10
	"syscall"
11
	"unsafe"
12
)
13

14
func Getenv(key string) (value string, found bool) {
15
	return syscall.Getenv(key)
16
}
17

18
func Setenv(key, value string) error {
19
	return syscall.Setenv(key, value)
20
}
21

22
func Clearenv() {
23
	syscall.Clearenv()
24
}
25

26
func Environ() []string {
27
	return syscall.Environ()
28
}
29

30
// Returns a default environment associated with the token, rather than the current
31
// process. If inheritExisting is true, then this environment also inherits the
32
// environment of the current process.
33
func (token Token) Environ(inheritExisting bool) (env []string, err error) {
34
	var block *uint16
35
	err = CreateEnvironmentBlock(&block, token, inheritExisting)
36
	if err != nil {
37
		return nil, err
38
	}
39
	defer DestroyEnvironmentBlock(block)
40
	blockp := uintptr(unsafe.Pointer(block))
41
	for {
42
		entry := UTF16PtrToString((*uint16)(unsafe.Pointer(blockp)))
43
		if len(entry) == 0 {
44
			break
45
		}
46
		env = append(env, entry)
47
		blockp += 2 * (uintptr(len(entry)) + 1)
48
	}
49
	return env, nil
50
}
51

52
func Unsetenv(key string) error {
53
	return syscall.Unsetenv(key)
54
}
55

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.