【问题标题】:after system resets environment value is lost系统重置后环境值丢失
【发布时间】:2014-01-08 11:54:49
【问题描述】:
   int abcd()
   {
    int temp1=0;

    char *env=NULL;
    env=getenv("ENVIRONMENT");
    sscanf(env,"%d",&temp1);
    temp1=temp1+1;
    printf("%d",temp1);
    sprintf(env,"%d",temp1);
    setenv("ENVIRONMENT",env,0);
    }

最初,我使用export ENVIRONMENT=0 手动将 ENVIRONMENT 设置为 0。现在这段代码会将ENVIRONMENT 设置为0。现在当系统重新启动时,我希望ENVIROMENT 的值应该为1,但该值再次仅为0。即使系统重新启动,如何保留该值。

【问题讨论】:

  • 将它们写入您的 shell 配置文件(例如 ~/.bash_proflle)。 setenv() 只会改变当前进程的环境变量。

标签: c linux environment-variables


【解决方案1】:

通过添加将环境变量的值添加到用户bashrc或全局bashrc

export ENVIRONMENT=0

/etc/bashrc(需要sudo)或~/.bashrc

在您的程序更改环境变量后,使其写入/编辑这些文件中的任何一个。

【讨论】:

  • 你能详细解释一下如何做到这一点
  • 使用标准文件操作,比如fprintf,将字符串export ENVIRONMENT=0写入提到的文件中。每进一步运行,遍历到行尾并编辑/替换行。跨度>
猜你喜欢
  • 2014-03-24
  • 2018-08-21
  • 1970-01-01
  • 1970-01-01
  • 2014-12-06
  • 1970-01-01
  • 2022-01-04
  • 2020-10-21
  • 1970-01-01
相关资源
最近更新 更多