C, открыть файлы относительно пути исполняемого файла? - PullRequest
1 голос
/ 04 февраля 2012

Я хочу исправить старую программу на C (получившую исходный код), которая использует относительные пути для загрузки файлов данных, ожидая, что исполняемый файл вызывается из каталога, в котором он находится, например LoadEx("./dataFile", dataFile); Конечно, вызывая программу из другогосбой каталога, так как dataFile не может быть загружен.

Как изменить программу на C для загрузки dataFiles относительно каталога исполняемого файла?

РЕДАКТИРОВАТЬ: Myисходный вопрос стал неприменимым и поэтому является дубликатом, по крайней мере, для: - Как найти расположение исполняемого файла в C? - Как открыть файл с относительным путем в Linux? - Поиск пути к текущему исполняемому файлу без / proc / self / exe

1 Ответ

2 голосов
/ 04 февраля 2012

Почему ты не хочешь readlink("/proc/self/exe")?Это способ найти путь к исполняемому файлу в Linux.

Единственный другой способ - извлечь PATH из среды с помощью getenv() и просмотреть каталоги PATH в поисках соответствия для argv [0].Первый вариант намного проще.

Или напишите сценарий для запуска программы после того, как сначала выполните which на исполняемом файле и передадите результат в качестве аргумента командной строки или какого-либо такого хака.

...