LINUX.ORG.RU

Перехватить обращение к файлу

 


0

1

Добрый день.

Вот возникла такая задача. В свое время один программер написал консольную утилитку для нашего сервера на CentOS 6. Она берет конфиг из одног места и по этому конфигу делает свою работу. Но беда в том, что путь к конфигу жестко забит в программе. А надо поменять путь по разным соображениям. Исходников программы к сожалению нет.

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

Заранее спасибо за ответ.


будет перехыватывать обращение к файлу конфига и выдавать его из другого места

ln -s, не?

ymn ★★★★★
()
Ответ на: комментарий от powerguy

Это я все знаю. :) Прошу прощения, что не уточнил задачу. Нужно, чтобы не просто программа брала конфиш из другого места, а какбы из другой проги. Ну скажем так, чтобы fopen в исходной программе вел например на stdout моей проги, а она уже выдавала какбы сам файл из памяти, не храня его фактически на диске.

MCoder
() автор топика

Совсем топорный способ: открыть бинарник в редакторе и поменять путь. Главное чтоб изменение было по длине точно такое же.

iron ★★★★★
()

В свое время один программер написал консольную утилитку для нашего сервера на CentOS 6.

И самое главное: где исходники?

sdio ★★★★★
()
Ответ на: комментарий от sdio

Вот идея с именованным каналом мне кажется перспективной. А как это все сделать? Можно ли поподробнее? Идея с LD_PRELOAD тоже хороша, но там к сожалению имхо возни больше.

MCoder
() автор топика
Ответ на: комментарий от MCoder
mv /etc/original.config /etc/original.config.bak
mkfifo /etc/original.config

chown и chmod на /etc/original.config по вкусу

/your/program/which/generate/config > /etc/original.config &

/original/program/without/sources
sdio ★★★★★
()
Ответ на: комментарий от sdio

Отлчный вариант. Вот я только немного не понял сути этой строки:

«/your/program/which/generate/config > /etc/original.config & /original/program/without/sources»

Особенно после знака &

И еще вопрос: а заданный пайп олстается после перезагрузки системы? И можно ли на старте запустить прогу, чтобы она «слушала» нужный пайп.

MCoder
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.