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

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

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

转载注明原文:退出后从C程序永久设置环境变量 - 代码日志