在Linux系统上,我有一个二进制文件(bin.exe)需要读取输入文件(input.cfg),其中指定了其他数据文件(data.txt)的名称。通常二进制文件,输入文件和数据文件都在同一目录中。现在,出于组织原因,我需要二进制文件在$ SOMEPATH / bin和$ SOMEPATH / input中的输入和数据文件。
我不知道该怎么做。如果我试试
$SOMEPATH/bin/bin.exe $SOMEPATH/input/input.cfg
我得到了
error, "data.txt" not found
一种解决方案是包括" data.txt"的相对路径的绝对值。在input.cfg中,但二进制文件不接受这个。
我想到了某种方式愚弄二进制文件以便它认为它在$ SOMEPATH / input中,所以我只是这样做
$SOMEPATH/bin/bin.exe input.cfg
它有效,但我不知道这是否可行。任何提示?
答案 0 :(得分:3)
(cd $SOMEPATH/input && $SOMEPATH/bin/bin.exe input.cfg)
这假设程序依赖当前工作目录来查找文件。如果程序努力在可执行文件的同一位置找到它们,例如通过咨询/proc/<pid>/exe
,那么您可能会运气不佳。