C,打开相对于可执行文件路径的文件?

时间:2012-02-04 04:49:56

标签: java c linux path getresource

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

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

修改 我的原始问题变得不适用,因此至少是重复的:   - How do I find the location of the executable in C?   - How to open a file with it's relative path in Linux?   - Finding current executable's path without /proc/self/exe

1 个答案:

答案 0 :(得分:2)

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

唯一的另一种方法是使用getenv()从环境中提取PATH并遍历PATH目录以查找argv [0]的匹配项。第一种选择更容易。

或者在首次对可执行文件执行which并将结果作为命令行参数或某些此类黑客传递后,编写一个脚本来启动程序。