getenv() 在不同的程序中为同一环境变量返回不同的值
getenv() returns different values in different programs for the same environment variable
我正在使用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()返回。
相关文章:
- 枚举环境变量的惯用C++14/C++17方法
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 如何在 c++ 中让布尔变量返回为 0 或 1 而不是真或假?
- 定义C++新的环境变量并在 bat 文件中使用它
- docker 构建失败:无法设置环境变量
- 如何在不传递命令行参数的情况下在 c++ 中设置环境变量
- C++环境变量
- 在编译时为运行时设置环境变量
- 如何使用可视化代码和平台IO将环境变量注入CPP文件?
- 访问 PlatformIO 中的外部环境变量
- WSL 看不到环境变量
- 如何在提升构建中设置环境变量以进行提升单元测试框架?
- 注册 TBB 的环境变量
- 如何设置Qt应用程序以使用类Unix系统的实际环境变量?
- CMake 看不到SDL2_PATH环境变量 (Windows)
- 跨语言共享环境变量
- 什么是运行英特尔线程构建模块的 XCode 8 环境变量
- 在运行时将更改的环境变量应用于 QApplication
- 在C++程序中找不到环境变量 UID
- getenv() 在不同的程序中为同一环境变量返回不同的值