getenv() 在不同的程序中为同一环境变量返回不同的值

getenv() returns different values in different programs for the same environment variable

本文关键字:环境变量 返回 getenv 程序      更新时间:2023-10-16

我正在使用ubuntu 14.04。我在程序中 main() 的顶部添加了以下代码,但是当我运行它时我没有打印任何内容。

char const* masteruri = getenv("ROS_MASTER_URI");
if (masteruri!=NULL){
printf ("The current masteruri is: %s",masteruri);
}
char const* rosdis = getenv("ROS_DISTRO");
if (rosdis!=NULL){
printf ("n The current rosdis is: %s",rosdis);
}

但是另一个程序中的相同代码给出了预期的结果

 The current masteruri is: http://localhost:11311
 The current rosdis is: indigo

我已经包含了stdlib.h,并将变量导出到etc/profile.d中

我不知道

为什么,但是printf由于某种原因不起作用,我尝试DEVLOG_INFO并注意到导出在/etc/profile.d中的变量值可以通过两个程序使用getenv()返回。