c - 通过赋值在 C 中设置环境变量

标签 c environment-variables

在我的 C 程序中,我可以通过.. setenv

设置环境变量

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

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

export MY_PASSWORD=`java -jar decrpytpassword $ENCRYPTED_PASS`

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

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

最佳答案

实现此目的的一种方法是:

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

附注如果您在步骤 2 中使用 fgets,则可能需要添加步骤 2a 以去除尾部 \n

关于c - 通过赋值在 C 中设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57790909/

相关文章:

bash - 在 bash 中将多个环境变量设置并导出为相同的值

java - 使用 ANT 脚本设置环境变量

c - 获取一组十六进制值并将其放入一个字符串或整数变量中?

转换数据 block 以与结构保持一致

c - 释放与列表关联的任何动态分配的内存并返回 NULL?

linux - git : Setting application environmental variables

c - 使用栈将中缀表达式转换为前缀时,如果被扫描的和栈顶运算符的优先级相同,应该怎么办?

c - MPI 核心数

java - 我的类路径在哪里设置?

bash - Docker build-arg在单独的行中定义时不会自动获取env变量