表头文件 #include
定义函数 char * getenv(const char *varname);
函数说明 getenv()用来取得参数name环境变量的内容。参数name为环境变量的名称,如果该变量存在则会返回指向该内容的指针。环境变量的格式为name=value。参数 name是一个包含环境变量名称的非空字符串。
返回值 执行成功则返回指向该内容的指针,找不到符合的环境变量名称则返回NULL。
相关函数 putenv,setenv,unsetenv
例子:
/* getenv example: getting path */
#include
#include int main (){
char * buffer;
buffer = getenv ("PATH");
if (buffer!=NULL)
printf ("Current path is: %s",buffer);
return 0;
}
putenv(改变或增加环境变量)
表头文件 #include
定义函数 int putenv(const char * string);
函数说明 putenv()用来改变或增加环境变量的内容。
参数 string的格式为name=value,如果该环境变量原先存在,则变量内容会依参数string改变,否则此参数内容会成为新的环境变量。
返回值 执行成功则返回0,有错误发生则返回-1。
错误代码 ENOMEM 内存不足,无法配置新的环境变量空间。
相关函数 getenv,setenv,unsetenv
例子:
/* putenv example */
#include
#include int main ()
{
char * buffer ;
buffer = getenv ("RESOURCES");
if (buffer==NULL)
{
putenv ("RESOURCES=www.cplusplus.com");
puts ("environment variable successfully set");
}
else puts ("environment variable already existed");
return 0;
}
setenv(改变或增加环境变量)
表头文件 #include
定义函数 int setenv(const char *name,const char * value,int overwrite);
函数说明 setenv()用来改变或增加环境变量的内容。参数name为环境变量名称字符串。
参数 value则为变量内容,参数overwrite用来决定是否要改变已存在的环境变量。如果overwrite不为0,而该环境变量原已有内容,则原内容会被改为参数value所指的变量内容。如果overwrite为0,且该环境变量已有内容,则参数value会被忽略。
返回值 执行成功则返回0,有错误发生时返回-1。
错误代码 ENOMEM 内存不足,无法配置新的环境变量空间
相关函数 getenv,putenv,unsetenv
例子:
#include
#include
main()
{
char * p;
if((p=getenv(“MYVAR”)))
printf(“MYVAR =%s ”,p);
setenv(“MYVAR”,”test”,1);
printf(“MYVAR=%s ”,getenv(“MYVAR”));
}
unsetenv(删除一个环境变量)
表头文件 #include
定义函数 int setenv(const char *name);
函数说明 unsetenv()用来删除一个名为name的环境变量。
参数name为环境变量名称字符
返回值 执行成功则返回0,失败返回-1例子:
#include
#include
main()
{
char * p;
if((p=getenv(“MYVAR”)))
printf(“MYVAR =%s ”,p);
setenv(“MYVAR”,”test”,1);
printf(“MYVAR=%s ”,getenv(“MYVAR”));
unsetenv(“MYVAR”);
printf(“MYVAR=%s ”,getenv
--------------------------------------------------------------------------------------------------------GetEnvironmentVariable
GetEnvironmentVariable函数从调用该函数的进程的环境变量中,返回指定的变量名的值,该值是一个以零结尾的字符串指针.
DWORD GetEnvironmentVariable(
LPCTSTR lpName, // address of environment variable name
LPTSTR lpBuffer, // address of buffer for variable value
DWORD nSize // size of buffer, in characters
);
参数:
lpName:要获取值的变量名字符串指针.
lpBuffer:接收变量值的字符串指针
nSize:接收变量值的内存大小.
返回值:
如果函数成功执行,则返回值是写入字符缓冲区的字符数量,但不包含'\0'字符.
如果没有找到所指的变量,则返回零.
如果字符缓冲区的大小小于变量值的长度,返回值为缓冲区的大小.
速查:
Windows NT: Requires version 3.1 or later.
Windows: Requires Windows 95 or later.
Windows CE: Unsupported.
Header: Declared in winbase.h.
Import Library: Use kernel32.lib.
Unicode: Implemented as Unicode and ANSI versions on Windows NT.
另请参阅:
Processes and Threads Overview, Process and Thread Functions, GetEnvironmentStrings, SetEnvironmentVariable
------------------------------------------------------------------------
GetEnvironmentStrings
该函数为当前进程返回系统环境变量,它取代了DOS模式下的相应函数:GetDOSEnvironment()
函数原型:
LPVOID GetEnvironmentStrings(VOID)
参数说明:
该函数不需要参数.
返回值:
该函数返回值是一个指向当前进程的系统环境变量的指针.
说明:
不要使用该函数来获取或设备系统环境变量.相反,应该使用GetEnvironmentVariable和SetEnvironmentVariable 函数来访问当前进程的系统环境变量.当不再需要当前进程的系统环境变量块时,应该调用FreeEnvironmentStrings函数来释放.
另请参阅:
Windows NT: Requires version 3.1 or later.
Windows: Requires Windows 95 or later.
Windows CE: Unsupported.
Header: Declared in winbase.h.
Import Library: Use kernel32.lib.
Unicode: Implemented as Unicode and ANSI versions on Windows NT.
Processes and Threads Overview, Process and Thread Functions, CreateProcess, GetEnvironmentVariable, SetEnvironmentVariable, FreeEnvironmentStrings
---------------------------------------------------------------------------------------------
GetEnvironment
GetEnvironment()
功能得到操作系统、处理器、屏幕显示等与系统相关的信息。
语法GetEnvironment ( environmentinfo )
参数environmentinfo:Environment对象名,用于保存系统环境信息返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果参数environmentinfo的值为NULL,GetEnvironment()函数返回NULL。用法当开发交叉平台项目时,利用GetEnvironment()函数,应用程序能够得到当前运行的操作系统、使用的CPU类型、操作系统的版本、屏幕的大小以及颜色数等信息,这些信息的具体表示请参阅本书环境对象(Environment Object)的介绍。