- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我正在尝试构建一个简单的 shell,它可以添加、删除、获取和打印环境。我知道来自父进程的环境拷贝是通过 C++ 程序中的 int main() 获得的,但是在调用 setenv 之后,环境拷贝是否永远不会更新?
我是否必须自己管理环境并在我的 shell 中保留一份环境拷贝,因为当我执行 setenv 调用然后打印环境时;我的变量和值不存在。如果我调用 getenv,变量仍然是 那里。最后我错过了一些非常简单的东西。谢谢
这不是作业项目,但这是我正在谈论的示例。
#include <iostream>
#include <stdlib.h>
int main(int argc, char * argv[], char * envp[]) {
setenv("My_Example", "For StackOverFlow because I'm dumb. Thanks.", 0);
for (char **env = envp; *env != 0; env++)
std::cout << *env << std::endl;
std::cout << "---------------------------------------------" << std::endl;
std::cout << "Value: " << getenv("My_Example") << std::endl;
return 0;
}
最佳答案
envp
是调用 main
时环境的拷贝。一旦调用 setenv
,环境就发生了变化,envp
中的相应条目已过时。
关于C++ getenv 和 setenv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52548062/
我有一个简单的 std::setenv 调用,它在我的 gcc 下的 Linux 发行版上运行良好。但是,在我的 Mac OS X 上使用 clang 时,出现以下错误。 error: no memb
我们有一个正在运行的 Team City Build Server,并且想要编译一个 Visual C++ 项目。到目前为止,这很容易,因为我已经使用 Windows SDK 设置了 Windows
获取 在初始化程序中将类型表达式列表视为复合表达式在这两个函数调用上 - char itoa(new_total, new_total_ch, 10); int setenv("COU
我的学校要我实现setenv() 标准c库函数的行为。我不允许为此实现使用 setenv()。我该怎么做? 最佳答案 在 C 编程语言的许多实现中,尤其是在 POSIX 上,可以从 environ 全
我正在使用 C++ 和 setenv 设置变量,如下面的程序所示: setenv("TEST", "$HOME/test", 1); char* val = getenv("TEST"); print
在 Linux 中使用二进制环境变量时,我发现了一些奇怪的行为,似乎某些单个字节是错误的。我仔细检查了一下,似乎某些字节在提供给 setenv() 时总是会被错误地“转换”。看看这个: #includ
我在这里阅读了几篇文章,但仍然对 setenv() 的方式感到困惑作品: linux-where-are-environment-variables-stored where-is-the-envir
在我的.htaccess中我设置: SetEnv APPLICATION_ENV development 我想检查 APPLICATION_ENV 是否等于 development 然后运行 ap
我正在尝试使用 setenv() 设置新的环境变量。 但我注意到 setenv() 函数仅在我使用环境“extern char **environ”时设置我的新环境变量 但我想使用 main() 的参
所以我正在尝试构建一个简单的 shell,它可以添加、删除、获取和打印环境。我知道来自父进程的环境拷贝是通过 C++ 程序中的 int main() 获得的,但是在调用 setenv 之后,环境拷贝是
我无法设置 setenv.sh 文件正常工作。谁能帮我在服务器上设置它。 SETENVPATH="${CATALINA_BASE:-$CATALINA_HOME}" if [ -r "$SETENVP
我想通过虚拟机选项修改xml文件。 所以我这样写setenv.sh。 export JAVA_OPTS="$JAVA_OPTS -server -Drun.my_own_property=my_own
有没有办法使用 C 中的函数更改 pragma omp for 循环中的 schedule 类型?我试图在并行语句之前执行 setenv("OMP_SCHEDULE", "guided", 1);,但
我需要用户在文本文件中定义我的程序所需的所有环境变量,如下所示。 MyDLLPath = C:\MyDLLPath 我的选项 = 选项 1 PATH = %MyDLLPath%;%PATH%; 在我的
我正在为系统编程类(class)开发自定义 shell。我们被指示实现内置的 setenv() 和 unsetenv() 命令,并提示检查 putenv()。 我的问题是 setenv(char*,
我在 Linux 中开发了一个 Tcl/Tk 脚本工具。为了运行该工具,每次我都需要在 shell 中像这样设置环境变量: setenv LD_LIBRARY_PATH /opt/lsf/9.1/li
我有下面的方法,它正确地将 ret 值设置为 0(表示在 setenv 中成功),但是当我检查是否实际设置了这个环境变量时,它不存在。为什么会这样? void Class::mysetenv(cha
我编写了以下 C 代码来将环境变量设置为 \x09。但是当我使用 echo $EGG | hexdump,我看到它将它设置为 00。只有当第一个半字节为零时才会出现此问题。知道哪里出了问题吗? cha
我有一个简单的测试项目,期望在运行时打印 goroutine 调度消息。 从 Goland 配置设置 env 它可以工作。但它不是来自下面的代码,该应用程序不会打印调度信息。有没有人解释一下这里发生了
我在 Linux 中使用 tcsh 终端。在我通常使用的另一个终端中,我将一些许可证文件的路径设置如下: export PATH="$PATH:$MODEL_TECH" Tcsh shell 无法
我是一名优秀的程序员,十分优秀!