吾编程时欲获取环境变量PATH的值,起初代码如下:
char *path;
path=getenv("PATH");
然后用如下代码拆分path
p=strtok(PATH,":");
do{
……//一些工作
}while((p=strtok(NULL,":"))!=NULL);
然strtok函数会将PATH中的“:”改为/0 字符,而我又在程序中多次调用上面的代码,
发现第一次程序正确运行,打印path时其值与$PATH也一致,然第二次 打印path时却不一样了!!?
很是郁闷!之后我又将
char *path;
path=getenv("PATH");
改为:
char PATH[1024];//引用环境变量PAHT
strcpy(PATH,getenv("PATH"));
这才正确执行了。
敢情getenv函数的正确执行还依赖于我们写的代码???