Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] Re: [apache-talk] Re: [apache-talk] ??? ??????????? ?????



In <19990126223412.A8759@xxxxxxxxxxxxxxxxxxx> Michael Sobolev (mss@xxxxxxxxxxx) wrote:
MS> On Tue, Jan 26, 1999 at 09:17:52PM +0300, Sergey Mokryshev wrote:
>> UNIX'ы добавляют 1-цу к количеству ссылок в i-node (hard links)
>> при открытии файла и вычитают ее при закрытии. Пока количество
>> ссылок в i-node не станет равным нулю, файл с диска стерт не
>> будет и с ним можно продолжать работать.
MS> Это на самом деле так?

Почти. Более того -- для людей, которые не общались с Windows и DOS, а "всю свою
сознательную жизнь" возились с Unix'ом (в английском используется выражение
"Unix guys" :-) это настолько естественно, что они просто не понимают, что
может быть как-то иначе -- при попытке портировать RPM в Windows в это
уперлись... Потому как обычная процедура upgrade RPM'а заключется в том,
что выполняется какая-нибудь команда типа
rpm -Uvh rpm-2.5.6-1.i386.rpm
после чего rpm запускается, стирает себя и записывает на то же место новый
исполняемый файл (ни и конечно изменяет базу -- это уж само собой). Как это
перенести в Windows -- непонятно :-(( Только вот называется это как-то типа
reference count или что-то в этом духе: во всяком случае на диск при этом
ничего не пишется и количество hard link'ов у файла от этого не меняется (иначе
всякий эффект от опции монтирования noatime отсутствовал бы :-)

P.S. В Linux'е этот файл можно даже "поймать" в /proc/<pidnum>/fd/<fdnum>
(перебрав дескрипторы) и "спасти"... Конечно такой подход сработает только
если программа "держит" файл достаточно долго...

P.P.S. BTW именно поэтому нельзя стереть подкаталог, который является текущим
для какой-либо программы: у подкаталогов вышеописанный счетчик изменяется
и при смене текущего каталога, а удалять подкаталог разрешается только тогда,
когда счетчик будет равен 2 (в Linux'е -- в некоторых других *nix'ах (обычно
старых) дело обстоит не так и путем команд
-- cut --
mkdir testdir
ln testdir testdir/newlink
cp /bin/sh testdir
rm testdir
-- cut --
можно чудно тратить память на диске впустую; иногда прямо так не проходит,
но аналогичная программа на C срабатывает; иногда такие шутки доступны только
root'у :-)



=============================================================================
=               Apache-Talk@xxxxxxxxxxxxx mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.