【发布时间】:2012-02-26 15:39:13
【问题描述】:
我想修复一个使用相对路径加载数据文件的旧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
【问题讨论】:
-
您列出的 Java 方法不会读取相对于正在执行的 Java 类的资源,而是相对于其类路径。
-
你说得对。我误解了 Java 中的
ClassLoader是如何工作的。既然如此,我原来的问题就变得不适用了......然后我想除了用proc找到绝对路径或通过配置设置绝对路径之外别无他法,在这种情况下,我的问题与另一个问题重复了跨度> -
C 代码中 main 函数的 argv[0] 参数应该有完整的文件名和可执行文件的路径。假设你有一个 main 函数并且没有擦除你的参数。
标签: java c linux path getresource