Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.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++ Linux中的SHGetKnownFolderPath等效API_C++_Linux_Redhat - Fatal编程技术网

C++ Linux中的SHGetKnownFolderPath等效API

C++ Linux中的SHGetKnownFolderPath等效API,c++,linux,redhat,C++,Linux,Redhat,我正在将一些功能从windows移植到linux,我发现在linux中很难匹配SHGetKnownFolderPath的功能。实际上glib中有一个API,用于这一部分,但我不想在这里使用该库。也可以通过在.bashrc中导出变量来实现这一点,但我喜欢linux API,它可以做到这一点 此外,还解释了如何访问xdg user dir。有没有其他方法可以这样做,否则我将坚持这样做。请对此进行说明。可以从名为home的环境变量中检索的主目录。您可以使用getenv()获取此文件。在主目录中,没有那

我正在将一些功能从windows移植到linux,我发现在linux中很难匹配SHGetKnownFolderPath的功能。实际上glib中有一个API,用于这一部分,但我不想在这里使用该库。也可以通过在.bashrc中导出变量来实现这一点,但我喜欢linux API,它可以做到这一点


此外,还解释了如何访问xdg user dir。有没有其他方法可以这样做,否则我将坚持这样做。请对此进行说明。

可以从名为home的环境变量中检索的主目录。您可以使用
getenv()
获取此文件。在主目录中,没有那么多标准化的目录。你的
桌面
被Gnome、KDE和朋友们用于你桌面上的东西。不同的应用程序和应用程序最终出现在以单个
为前缀的目录中,这使得默认目录内容列表在大多数应用程序中都隐藏了它们,例如
.ssh
.mc
Linux桌面的状态非常糟糕,尤其是对于这类应用程序。有一些FreeDesktop标准,但在一致性和向后兼容性方面与WindowsShellAPI没有任何相似之处

也就是说,根据我的经验,最安全的做法是依赖XDG的实用程序,特别是在您的情况下(在其他情况下可以派上用场);如今,它们几乎被普遍安装,而且它们通常做“正确”的事情。此外,许多软件包都依赖于它们,因此任何反测试都有可能至少在它们上面测试集成(注意:如果有人编写的配置破坏了xdg UTIL,那么他们很可能会修复它;如果使用xdg UTIL时出现了不合规格的垃圾,那么他们可能不会注意到)

请不要对这种东西太聪明。Firefox试图在Linux上巧妙地处理文件关联,10年来,点击其中的“打开文件夹”打开随机应用程序(在我的盒子上,它非常喜欢打开Gwenview;过去它更喜欢FileLight)