[devel] [Fwd: [(nowhere)] fopen() calls __open]
Alexander Bokovoy
=?iso-8859-1?q?ab_=CE=C1_altlinux=2Eorg?=
Пт Май 12 23:45:17 MSD 2006
Anton Farygin пишет:
> Alexander Bokovoy wrote:
>> Интересная дискуссия по поводу того, как делать "перекрытия"
>> файловых операций для glibc. В свете ближнего и среднего будущего о
>> smbsh и аналогах, похоже, придется забыть. Все же,
>> autofs/automount более грамотный подход.
>
> Вообще очень странно, что они не смогли перекрыть fopen(), ибо в
> fakechroot (лежит в Sisyphus) fopen() и fopen64() прекрасно
> перекрываются.
>
> Другой вопрос, что это перекрытие естественно не работает для
> статически слинкованных приложений.
>
> А во всём остальном - всё прекрасно. перекрываются все операции с
> файлами.
Ты невнимателен. Невозможно перекрыть вызовы внутри glibc. Чтобы
"закрыть все", необходимо перекрывать все высокоуровневые и
низкоуровневые операции, а не только одну из этих групп. Очевидно, что
fakechroot это делает, но тут я сомневаюсь, что он делает это полностью
-- попользовав его в scratchbox-е, я увидел некоторое количество
странностей в поведении.
Понятно, что компилятор, make и аналогичные программы используют
относительно несложные шаблоны файловых операций, а вот реальные
приложения могут цеплять и более тяжелые случаи и тогда начнутся
проблемы. Я пытался гонять под fakechroot ту же Самбу (в qemu-arm), она
даже не поднялась, в то время как на реальном устройстве все было чудесно.
--
/ Alexander Bokovoy
Samba Team http://www.samba.org/
ALT Linux Team http://www.altlinux.org/
Midgard Project Ry http://www.midgard-project.org/
Подробная информация о списке рассылки Devel