1

我想修复一个使用相对路径加载数据文件的旧 C 程序(获取源代码),期望从放置它的目录调用可执行文件,例如LoadEx("./dataFile", dataFile);当然从另一个目录调用程序失败,因为dataFile不能加载。

如何修改 C 程序以加载dataFiles相对于可执行文件的目录?

编辑: 我最初的问题变得不适用,因此至少重复: -如何在 C 中找到可执行文件的位置? -如何在 Linux 中打开具有相对路径的文件? -在没有 /proc/self/exe 的情况下查找当前可执行文件的路径

4

1 回答 1

2

你为什么不想要readlink("/proc/self/exe")?这是在 linux 上找到可执行文件路径的方式。

唯一的另一种方法是从环境中提取 PATHgetenv()并遍历 PATH 目录以寻找 argv[0] 的匹配项。第一个选项要容易得多。

which或者在第一次对可执行文件执行 a 并将结果作为命令行参数或类似的 hack 传递之后,编写一个脚本来启动程序。

于 2012-02-04T05:13:36.100 回答