gpt4 book ai didi

c - 如何获取 C 程序本身设置的所有环境变量?

转载 作者:太空宇宙 更新时间:2023-11-04 07:21:15 24 4
gpt4 key购买 nike

我正在编写一个使用 system() 函数设置环境变量的 C 程序。

有没有什么集合可以给我C程序设置的环境变量?我需要在 C 程序中使用集合。

最佳答案

在 Linux 和类似系统中,当您运行一个进程(例如执行 C 程序)时,该进程是创建它的进程(通常是命令行 shell)的子进程或桌面/GUI 管理器)。创建进程是父进程。子进程中设置的任何“环境变量”都不会影响父进程。

子进程可以使用 getenv 检查自己的环境变量。

如果子进程使用 system 或其他例程创建自己的子进程,则在该“孙子”进程中创建的任何环境变量都不会影响其父进程(我们的第一个子进程)。

一个程序为另一个进程提供环境变量的两种常见方式是:

  • 程序可以创建自己的子进程并指定要在子进程中创建的环境变量,就像各种 exec* 例程,例如 execle。<
  • 程序将环境变量的设置写入stdout 或另一个流,协作进程读取这些设置并相应地设置自己的环境变量。这方面的一个例子是在 Bourne 类型的 shell 中使用命令 eval `ssh-agent -s`。此命令告诉 shell 执行命令 ssh-agent -s,然后评估该命令的输出,就好像它是命令一样。

关于c - 如何获取 C 程序本身设置的所有环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21518123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com