linux - 为什么 "export"在运行时设置 linux shell 环境变量的 linux system() 命令中不起作用?

标签 linux shell

我试图在运行时使用 system() 命令在软件中设置 linux shell 环境变量。在目标中,看不到它的设置。 例如。

snprintf(buf, sizeof(buf), "export A=%s", "luck");
system(buf);

在目标运行时尝试了 /bin/sh -c "export A=B" 但没有成功。

最佳答案

system 调用会启动一个新的 shell 并在其中运行命令。 环境变量将仅在该 shell 中设置。

要在您自己的进程中设置环境变量,请使用 putenv .

关于linux - 为什么 "export"在运行时设置 linux shell 环境变量的 linux system() 命令中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24415933/

相关文章:

c - 如何在 C 中外部 SDL_Surface 数组?

linux - 当用户第一次打开网络浏览器时,如何在局域网计算机上询问用户名和密码

bash - 一个简单的 if/else bash 脚本,它对用户的是/否输入使用react?

linux - 从 tcsh 更改为 bash?

Shell脚本和路径中的空格

c++ - 重定向由 execv 运行的进程的输出

linux - 密码更改期望脚本

c++ - ubuntu 18.04 上的 gcc/g++ 7.3.0 链接错误

linux - 为什么在双引号内指定部分路径时 posh 无法执行路径名扩展?

shell - gitlab-ci中的脚本不输出错误