在Eclipse中使用C ++获取环境变量$ PATH

时间:2016-03-31 07:30:06

标签: c++ environment-variables

我试图在Linux中使用简单的C ++程序获取环境变量$ PATH的值,如下所示:

shouldSwitch

我使用了两种不同的方法:使用管道和使用getenv方法。他们都输出了这个:

  

的/ opt / texbin:在/ usr / local / sbin中:在/ usr / local / bin中:/ usr / sbin目录:在/ usr / bin中:/ sbin目录:/ bin中:在/ usr /游戏:在/ usr /本地/游戏: /usr/local/netbeans-7.3.1/bin

有趣的是,PATH的实际价值是不同的!

enter image description here

为什么我的C ++程序为PATH显示不同的值?

编辑1:我在Eclipse IDE中运行我的C ++程序。

编辑2:直接编译程序(没有Eclipse IDE)显示正确的PATH值!

enter image description here

编辑3:我也在here找到了答案。

1 个答案:

答案 0 :(得分:3)

进程从创建它的进程继承环境。

这就是Linux的工作方式,以及许多其他操作系统。

如果从Eclipse启动程序,该程序将继承Eclipse的环境 如果从shell启动程序,该程序将继承shell的环境,包括对init文件中PATH的修改。

由于Eclipse从启动它的任何进程继承了环境,如果从shell而不是通过桌面GUI启动Eclipse,您应该会看到预期的输出。