linux C 编程,用 getenv 函数获取环境变量时,返回值为什么是整型的?
答案:2 悬赏:70 手机版
解决时间 2021-11-19 17:18
- 提问者网友:萌卜娃娃
- 2021-11-19 02:08
linux C 编程,用 getenv 函数获取环境变量时,返回值为什么是整型的?
最佳答案
- 五星知识达人网友:往事埋风中
- 2021-11-19 02:57
getenv()返回字符串指针。函数原型是: char * getenv(const char *name);
通过环境变量的名字获取值。用整形打印当然是数字了,因为它是指针。你换成%s打印试试。
环境变量里面没有这个名字。
你确定警告是对的这行代码吗?追问环境变量里有的,我看过了,而且我十分确定,这个warn就是针对这行代码的,我都无语了。。追答你linux的版本号,glibc的版本号是多少?
给我们看看你的printf语句和编译的结果抓图吧。追问
追答在gcc.gnu.org上没有找到答案,坐等大神解决。追问谢谢兄弟!追答有没有可能是头文件声明那块出了问题, 看看 grep getenv /usr/include/*.h 返回的是什么?
用strings之类的工具从库文件里面能导出点什么来吗?
通过环境变量的名字获取值。用整形打印当然是数字了,因为它是指针。你换成%s打印试试。
环境变量里面没有这个名字。
你确定警告是对的这行代码吗?追问环境变量里有的,我看过了,而且我十分确定,这个warn就是针对这行代码的,我都无语了。。追答你linux的版本号,glibc的版本号是多少?
给我们看看你的printf语句和编译的结果抓图吧。追问
追答在gcc.gnu.org上没有找到答案,坐等大神解决。追问谢谢兄弟!追答有没有可能是头文件声明那块出了问题, 看看 grep getenv /usr/include/*.h 返回的是什么?
用strings之类的工具从库文件里面能导出点什么来吗?
全部回答
- 1楼网友:时间的尘埃
- 2021-11-19 03:55
指针使可以转换成整数的,你的什么版本的gcc?
我的gcc 版本 4.8.3 20140911 (Red Hat 4.8.3-7) (GCC)编译没有任何警告。
#include#include
int main()
{
puts( getenv("HOME") );
char *user = getenv("USER");
puts(user);
return 0;
}追问我的gcc有点老,gcc version 4.1.2 20080704 (Red Hat 4.1.2-52),不会是因为这个原因吧。。。
我man了一下getenv函数,人说的好好的,是返回指针的,我迷茫了。。。我确认这个warn是针对这行代码的。。。追答应该是gcc的原因追问感谢兄弟!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯