jdk

Форк
0
/
UnixSysInfo.cpp 
69 строк · 2.3 Кб
1
/*
2
 * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved.
3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
 *
5
 * This code is free software; you can redistribute it and/or modify it
6
 * under the terms of the GNU General Public License version 2 only, as
7
 * published by the Free Software Foundation.  Oracle designates this
8
 * particular file as subject to the "Classpath" exception as provided
9
 * by Oracle in the LICENSE file that accompanied this code.
10
 *
11
 * This code is distributed in the hope that it will be useful, but WITHOUT
12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14
 * version 2 for more details (a copy is included in the LICENSE file that
15
 * accompanied this code).
16
 *
17
 * You should have received a copy of the GNU General Public License version
18
 * 2 along with this work; if not, write to the Free Software Foundation,
19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20
 *
21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
 * or visit www.oracle.com if you need additional information or have any
23
 * questions.
24
 */
25

26
#include <stdlib.h>
27
#include "SysInfo.h"
28
#include "UnixSysInfo.h"
29
#include "ErrorHandling.h"
30

31
namespace SysInfo {
32

33
tstring getEnvVariable(const tstring& name) {
34
    char *value = ::getenv(name.c_str());
35
    if (!value) {
36
        JP_THROW(tstrings::any()    << "getenv("
37
                                    << name
38
                                    << ") failed. Variable not set");
39
    }
40
    return tstring(value);
41
}
42

43

44
tstring getEnvVariable(const std::nothrow_t&, const tstring& name,
45
                                                    const tstring& defValue) {
46
    char *value = ::getenv(name.c_str());
47
    if (value) {
48
        return tstring(value);
49
    }
50
    return defValue;
51
}
52

53

54
bool isEnvVariableSet(const tstring& name) {
55
    return ::getenv(name.c_str()) != 0;
56
}
57

58
void setEnvVariable(const tstring& name, const tstring& value) {
59
    if (::setenv(name.c_str(), value.c_str(), 1) != 0) {
60
        JP_THROW(tstrings::any() << "setenv(" << name << ", " << value
61
                                    << ") failed. Error: " << lastCRTError());
62
    }
63
}
64

65

66
int argc = 0;
67
char** argv = 0;
68

69
} // end of namespace SysInfo
70

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

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

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

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