当前位置: 首页 > 面试题库 >

为什么使用setenv()后未设置环境变量

拓拔辰钊
2023-03-14
问题内容

我在Linux中编写了一个C程序,使用来设置环境变量的值setenv,但是执行后,当我运行set或时export,环境变量本身似乎未设置。为什么?

这是代码片段:

int main()
{
  char *mallocPtr, *callocPtr, *reallocPtr, *memalignPtr, *vallocPtr;
  struct sigaction sa;

  sa.sa_handler=SIGSEGV_handler;
  sigaction(SIGSEGV, &sa, NULL);

  if(setenv("ENV1", "3", 1) == 0)
         printf("ENV1 set to 3\n");
  else
         fprintf(stderr, "setenv failed on ENV1");

问题答案:

环境变量在程序的上下文中设置。

程序退出时,您将返回到程序启动所在的上下文。



 类似资料:
  • 问题内容: 我需要拆分Django的开发和生产设置。我决定,如果设置了变量,则应用程序应使用生产设置。我阅读了这篇文章,并试图做到这一点。 我的摘要: /etc/apache2/sites-enabled/uskovtask.conf: wsgi.py: settings.py的一部分: 但是它总是导入settings_dev的设置。为什么? 问题答案: 这与来自Django wsgi.py文件的

  • 问题内容: 我在下面的代码中只想设置一个环境变量: 运行此文件: 该调用可以正确打印,但是随后我希望在会话中也设置此env变量,但是: 什么都没有,它是空的。这是预期的行为吗?如果是这样,我如何使这个env变量在我的会话中保持不变,并使用类似这样的程序对其进行设置? 问题答案: 创建新流程时,将复制父流程的环境。在新流程中对环境所做的更改不会影响父流程。修改环境后,您必须让程序启动Shell。

  • 问题内容: 我在运行show时有一个file.sh:未设置TERM环境变量。 问题答案: 您可以看到它是否真的没有 设置 。运行命令。 如果没有,则可以这样设置:

  • 问题内容: 我想通过运行程序时设置环境变量。这可能吗? 我试图这样设置: 但是结果消息说FOO不存在。 问题答案: 您必须传递一个包含键 env 的选项对象,该键 env 的值本身就是键值对的对象。

  • 问题内容: 我的服务器上有一个Upstart脚本,如下所示: 但是,该应用程序看不到NODE_ENV设置为正式生产。实际上,如果我在应用程序中使用console.log(process.env),则看不到NODE_ENV或CUSTOM。有什么想法吗? 顺便说一下,NODE_ENV =生产节点app.js可以正常工作。 问题答案: 从sudo手册页(sudo的Ubuntu版本) 有两种不同的方法来处

  • 问题内容: 需要基于构建环境配置来设置标签的href值。 例如: 分期应有 产品应具有 当前设置: 生成命令: .env.staging.js: index.html: 在index.html中,这似乎不起作用。虽然类似的设置适用于JS文件 (可能是因为将JS文件解析并捆绑到一个文件中,并且捆绑程序在该时间点读取值) 尝试过的事情: index.html: (类似于PUBLIC_URL变量) 与浏