【发布时间】:2010-09-09 17:01:27
【问题描述】:
我正在为 windows 使用 gcc。操作系统是 windows XP。 如何将 homepath 变量导入我的 c 程序,以便我可以写入 c:\%homepath%\desktop?我想使用类似的东西:
fd = fopen("C:\\%%homepath%%\\desktop\\helloworld.txt","w");
【问题讨论】:
我正在为 windows 使用 gcc。操作系统是 windows XP。 如何将 homepath 变量导入我的 c 程序,以便我可以写入 c:\%homepath%\desktop?我想使用类似的东西:
fd = fopen("C:\\%%homepath%%\\desktop\\helloworld.txt","w");
【问题讨论】:
使用 getenv() 获取环境变量的值,然后使用 sprintf 或 strcat 组合路径。
【讨论】:
使用getenv("homepath") 获取环境变量的值。您应该处理尚未定义变量的情况(getenv 在这种情况下返回NULL)。
要组成路径,请使用sprintf
char * homepath = getenv("homepath");
if(homepath == null) {
/* variable HOMEPATH has not been defined */
}
sprintf(path,"%s\\desktop\\helloworld.txt",homepath);
您应该使路径足够大以容纳 homepath 和 \\desktop\\helloworld.txt 的值。
还要注意在字符串中使用\\。您不能使用单个 \。
【讨论】:
注意:您实际上还需要获取 HOMEDRIVE 的值,并将其添加到 HOMEPATH。在许多公司环境中,主目录保存在大型网络设备或服务器上。
【讨论】: