[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