Сделайте бинарный верят, что он находится в другом каталоге - PullRequest
0 голосов
/ 01 ноября 2011

В системе 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

и он работает, но я не знаю, так ли этовозможно.есть намеки?

1 Ответ

3 голосов
/ 01 ноября 2011

(cd $SOMEPATH/input && $SOMEPATH/bin/bin.exe input.cfg)

Предполагается, что для поиска файлов программа использует текущий рабочий каталог.Если программа изо всех сил пытается найти их в том же месте, что и исполняемый файл, проконсультировавшись, например, /proc/<pid>/exe, то вам может не повезти.

...