Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C语言查找桌面路径?_C_Windows - Fatal编程技术网

如何使用C语言查找桌面路径?

如何使用C语言查找桌面路径?,c,windows,C,Windows,有人能告诉我如何使用C语言命令获取桌面路径(环境变量)吗 场景是我想在桌面上保存一个文件。我能做的只是给一个固定的桌面路径和一个文件名来保存文件。但在给出这个固定路径后,我的代码将变得僵硬,无法在具有不同桌面路径(环境变量)的任何其他计算机上工作。 我的问题是,我是否可以使用C语言捕获桌面的环境变量,从而使我的代码通用化,使其可以在任何基于windows的机器上工作 关于您可以使用该函数访问环境变量: 环境变量的值 可以通过getenv访问 功能。这是在 头文件stdlib.h 对于Window

有人能告诉我如何使用C语言命令获取桌面路径(环境变量)吗

场景是我想在桌面上保存一个文件。我能做的只是给一个固定的桌面路径和一个文件名来保存文件。但在给出这个固定路径后,我的代码将变得僵硬,无法在具有不同桌面路径(环境变量)的任何其他计算机上工作。 我的问题是,我是否可以使用C语言捕获桌面的环境变量,从而使我的代码通用化,使其可以在任何基于windows的机器上工作

关于

您可以使用该函数访问环境变量:

环境变量的值 可以通过getenv访问 功能。这是在 头文件stdlib.h

对于Windows系统,
USERPROFILE
如果附加
\Desktop
(例如,请参阅mgiuca提供的)。请注意,在大多数情况下,路径将包含空格,因此请相应地处理它


另外,使用环境变量获取桌面文件夹的路径不是最好的方法,在某些情况下可能不起作用(也请参阅本主题的其他SO答案,如),因此请将此答案视为您特定问题的答案,尤其是“C++中的环境变量”部分。

@Erik问题中提到了Windows。我已经添加了“windows”标签。+1。我正要说同样的话,我发现有消息来源推荐这种方法。(在那个页面上搜索“桌面”。@schnaader,@mgiuca:互联网上有很多不好的建议。例如,对桌面路径使用
%USERPROFILE%\Desktop
。不保证在所有情况下都定义环境变量。它们对你来说主要是一个好东西,但从程序上看,它们使用的是API。@Ben,Joey:好的,编辑我的答案来指出这一点@乔伊:我很好奇,如果环境变量没有定义,它将是空的,所以我们至少可以检测出它不起作用的情况并处理它,对吗?所以如果不可靠的方法A失败,你会回到总是可靠的方法B?那么,为什么还要麻烦使用方法A呢?