【问题标题】:Accessing Local Application Files In CLI Enviroment?在 CLI 环境中访问本地应用程序文件?
【发布时间】:2016-08-15 08:14:14
【问题描述】:

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

我的想法是这样的:

  1. 使用操作系统相关函数获取程序目录。
  2. 使用一些字符串操作来获取程序的主目录。
  3. 在运行时将我需要的文件附加到字符串,而无需使用任何帽子戏法 CWD 命令。

不确定 Windows/Linux 是否已经有办法解决这个问题,但我想我应该知道是否有更好的选择。

谢谢!

【问题讨论】:

标签: c linux windows cross-platform


【解决方案1】:

如果你想从你的 C 二进制文件中访问的文件在同一个目录或子目录中,你可以使用“.”直接访问,这是当前目录。

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

char *getwd(char *buf);

通常,你可以这样使用(这个 sn-p 会打印你,C 二进制文件的当前目录):

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

【讨论】:

  • 但是如果我的二进制文件在终端中存储二进制文件的目录之外被调用怎么办?即应用程序存储在 /etc/bin/ 中,但它正在用户的主文件夹中执行。如何获取配置文件或应用文件夹中的内容?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-20
  • 2011-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多