获取可执行文件的路径(std::filesystem)

Get executable's path (with std::filesystem)

在我被标记为重复之前,我能找到的所有类似问题在引入 std::filesystem 之前都有答案,并且可以使用特定于平台的代码或 Boost::filesystem。我正在寻找使用 std::filesystem.

的便携式答案

是否可以使用std::filesystem获取c++可执行文件所在的路径(不是工作目录)?如果是,如何?

不,standard filesystem facilities 中没有提供任何内容来获取可执行文件的路径。

即使使用 1st argv argument 也不能保证包含可执行文件的完整路径。
我知道的系统只会传入用于启动程序的字符串。
考虑到这可以使用 PATH 环境变量来解决,所以不能保证,你会在那里看到完整路径。

虽然有一些 OS 具体方法可以做到这一点:

  • Get path of executable