当被问到用户名时,getenv会返回null吗?

时间:2014-02-06 03:42:44

标签: c windows getenv

我想使用stdlib功能getenv ()获取用户名但是我总是得到NULL这是我写的代码:

#include<stdio.h>
#include<stdlib.h>

 main()
 {

 char *hai;
 printf("The current User name is\n");
 hai="USER";
 printf("%s\n",getenv(hai));


exit(0);
}

getenv ()返回的值是否取决于您用于编译代码的计算机,以及返回的值为NULL的原因?

2 个答案:

答案 0 :(得分:2)

在Windows上,您需要使用getenv("USERNAME")USER / USERNAME环境变量未标准化,除非您自己设置,否则在Windows上找不到名为USER的环境变量。

答案 1 :(得分:1)

This page讨论了getenv()的返回值:“带有所请求环境变量值的C字符串,或者如果这样的环境变量不存在则为空指针。”

看起来您的“USER”环境变量未设置。如果在命令行上键入set,是否会显示?