gpt4 book ai didi

c++ - 通过 PATH env 启动程序。变种。有正确的工作目录

转载 作者:行者123 更新时间:2023-11-28 07:09:54 25 4
gpt4 key购买 nike

我只是尝试通过 PATH env 解析其位置来运行一个新进程。变种。因为我使用 Qt 这意味着我添加了

X:\文件夹\

到我的 PATH 变量和我正在调用的启动应用程序中

QProcess::startDetached("test.exe")

这确实有效。

然而,test.exe 将数据写入其工作目录。此数据最终位于启动应用程序的目录中,而不是 X:\folder\,这不是我想要的。

我通过在 CLI 中键入“test.exe”直接在 Windows 命令行中测试了该行为,它在那里是相同的(将数据写入当前目录)。

有没有一种方法(在 C++ 或命令行中)使用 PATH 启动进程,同时还使用 PATH 中找到的目录作为新进程的工作目录?

我可以自己搜索 PATH,分析结果并通过另一个 QProcess::startDetached() 重载启动程序,但我想知道是否有更简单的方法。

最佳答案

当您使用路径时,操作系统不会“移动到当前目录”。你必须自己做。 (在大多数情况下,您不会真的希望应用程序移动到不同的目录 - 如果编译器在您执行 gcc foo.c 时这样做了怎么办 - 那么您必须通过完整的所有内容的路径,因为您当然不想将源文件放在编译器所在的位置——在许多情况下,您甚至可能无法在 Unix/Linux 系统上写入该目录)。

您将必须预先设置正确的文件夹 [我建议使用应用程序安装目录可能不是最好的地方!],或者执行 chdir(...) 来更改当前工作目录到您希望数据所在的位置。大多数应用程序(使用像这样将文件存储在特定位置的原则)在某处的设置中存储“默认目录”,因此用户可以更改设置以适合他/她的设置。

关于c++ - 通过 PATH env 启动程序。变种。有正确的工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21181251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com