退出后从C++程序永久设置环境变量

Kev*_* S. 3 c++ bash environment-variables

我正在编写一个多次运行C++程序的bash脚本.我在C++程序中使用getenv()putenv()创建,获取和更新环境变量.在C++程序结束后,bash脚本需要获取这些变量并执行一些基本逻辑.问题是当C++程序退出时,环境变量就会消失.有没有办法在程序终止后永久存储这些变量,以便bash脚本可以使用它们?如果没有,在bash脚本和C++程序之间共享变量的最佳方法是什么?我能想到的唯一解决方案是将输出写入文件.我不想在控制台中打印这些数据.任何帮助将不胜感激.

Gre*_*ill 5

每个进程都有自己的环境变量副本,这些副本在启动新进程时通过从父进程复制它们来初始化.在流程中更改环境变量时,父流程不知道这一点.

为了将信息从孩子传递给父母,您需要设置其他类型的通信渠道.它可能是磁盘上的文件,也可能是管道,或者(取决于父级的功能,bash可能无法完成所有这些)共享内存或其他一些IPC机制.然后,父程序将负责根据从子女收到的信息更改自己的环境变量.