在CLI环境中访问本地应用程序文件?

时间:2016-08-15 08:14:15

标签: c linux windows cross-platform

我不知道怎么问这个,但我会尽我所能。无论如何,我的情况是这样的:我有文件,我希望我的应用程序/可执行文件能够始终访问相对于可执行文件的路径或与程序在同一目录中。因为我希望我的程序能够在任何CWD中运行,并且仍然可以获得所需的一切。我想知道获取与我的可执行文件相关的文件的最佳方式或方法是什么,这不会弄乱用户的CWD?

我头脑中的方法就是:

  1. 使用操作系统相关功能获取程序目录。
  2. 使用一些字符串操作来获取程序的主目录。
  3. 在运行时将字符串附加到字符串,而不必使用任何帽子戏法CWD命令。
  4. 不确定Windows / Linux是否已经有了解决这个问题的方法,但我想我应该知道是否有更好的选择。

    谢谢!

1 个答案:

答案 0 :(得分:-1)

如果要从C二进制文件访问的文件位于同一目录或子目录中,则可以使用“。”直接访问,这是当前目录。

或者你可以简单地使用getwd函数。

char *getwd(char *buf);

通常情况下,您可以像这样使用(此代码段会打印您,C二进制文件的当前目录):

int main()
{       
 char buf[4096];
 getwd(buf);
 printf(but);
}