0

有没有办法知道程序最初在 C 中生成的目录?我希望我的程序知道它在计算机中的位置。我已经尝试使用_getcwd()in direct.h。我也尝试getcwd()使用unistd.h. 但这就是问题所在。如果我在我的程序目录中添加了一个 PATH,函数_getcwd()getcwd()路径将返回我调用程序的路径。因此,如果我在 dekstop 中运行程序,它将返回桌面的路径。我已经尝试过使用这种方法,但它不能解决问题。它返回调用路径的值。我想知道使用什么函数来知道程序的路径,而不是程序被调用的路径。我应该使用什么功能?

4

1 回答 1

0

当前的工作目录没有任何用处。除了巧合之外,可执行映像在文件系统中的位置与当前工作目录之间没有任何联系。

您可以通过调用_get_wpgmptr(Visual Studio 附带的 CRT 的 Microsoft 特定扩展)或GetModuleFileName(传递NULLhModule )来检索可执行文件的完全限定路径,并通过调用PathRemoveFileSpec(或Windows 8的PathCchRemoveFileSpec和以上)。

于 2016-05-16T13:01:52.180 回答