【问题标题】:Setting Environmental Variable in C via assignment通过赋值在 C 中设置环境变量
【发布时间】:2019-09-04 14:47:34
【问题描述】:

在我的 C 程序中,我可以通过..setenv 设置环境变量

但是 setenv 只允许我通过字符串设置环境变量。

目前在我的环境中,我的 bash 配置文件中有以下设置...

export MY_PASSWORD=`java -jar decrpytpassword $ENCRYPTED_PASS`

其中decryptpassword 是一个Java 可执行jar 文件,它接受加密密码并打印出解密后的密码。

我想在我的 C 程序中做类似的事情,我将通过字符串传递加密的密码并解密它。

【问题讨论】:

  • 请注意,在您的环境中拥有您的解密密码是一个重大的安全风险。躲开它!您通常应该避免使用反引号,如下所示:改用export MY_PASSWORD=$(java -jar decryptpassword "$ENCRYPTED_PASS")

标签: c environment-variables


【解决方案1】:

一种方法是:

  1. 使用popen 运行命令并捕获其输出。
  2. 从该输出中读取一个字符串(可能使用fgets)。
  3. 使用 setenv 将该新字符串放入环境中。

附:如果您在第 2 步中使用 fgets,则可能需要添加第 2a 步以去除尾随的 \n

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多