In <XFMail.990127151159.skiller@comset.net> skiller@comset.net
(skiller@comset.net) wrote:
s> Hi!
s> On 26-Jan-99 Khimenko Victor wrote:
>>>> UNIX'ы добавляют 1-цу к количеству ссылок в i-node (hard links)
>>>> при открытии файла и вычитают ее при закрытии. Пока количество
>>>> ссылок в i-node не станет равным нулю, файл с диска стерт не
>>>> будет и с ним можно продолжать работать.
>> MS> Это на самом деле так?
s> ...
>> после чего rpm запускается, стирает себя и записывает на то же место новый
>> исполняемый файл (ни и конечно изменяет базу -- это уж само собой). Как это
s> Очень удобно также делать гарантировано-временные файлы как
s> $fp=fopen('file.txt','w+'); // Создает файл на диске
s> unlink('file.txt'); // УДАЛЯЕТ этот файл
s> ... // Здесь можно писать и читать этот файл итп...
s> fclose($fp); // Закрыть файл - файл тут же исчезает из
каталога
s> // так как он уже давно удален...
s> Если программа прервалась по какой-то причине (уср нажал "стоп"), то файло
не
s> остается, а также удаляется тк дескриптор будет закрыт...
Угу. Как я уже замечал при наличии прав можно файл все равно "поймать" в /proc
...
>> P.P.S. BTW именно поэтому нельзя стереть подкаталог, который является текущим
>> для какой-либо программы: у подкаталогов вышеописанный счетчик изменяется
>> и при смене текущего каталога, а удалять подкаталог разрешается только тогда,
>> когда счетчик будет равен 2 (в Linux'е -- в некоторых других *nix'ах (обычно
>> старых) дело обстоит не так и путем команд
>> -- cut --
>> mkdir testdir
>> ln testdir testdir/newlink
s> Ээээ... Нельза делать хардлинк на каталог! Извини. Только симлинк.
Эта, однака, да. Похоже у нас совсем с головкой плохо. Читать разучились.
Да, в Linux'е (да и в большинстве современных Linux'ов) -- только symlink'и.
Однако на Linux'е свет клином не сошелся.
>> можно чудно тратить память на диске впустую; иногда прямо так не проходит,
>> но аналогичная программа на C срабатывает; иногда такие шутки доступны только
>> root'у :-)
s> Ага, еще прикольно:
s> $fp=fopen('text.txt','w+'); // создать файл - размер=0
s> fputs($fp,' '); // Запишем что-ньть...
s> fseek($fp,1024*1024,0); // сикнуть на мегабайт вперед
s> fputs($fp,' '); // там запишем что-то
s> fclose($fp); // закроем файло
s> Вопрос:
s> 1. На сколько меньше стало места на диске?
s> 2. Какой размер файла?
s> Ответ:
s> 1. на 512 байт.
На ext2fs -- на 4096 байт, на minix'е -- 1049600 байт, на vfat'е (FAT32) --
1052672 байт (не считая возможных потерь на расширение каталога).
s> 2. 1Мб+1 байт.
s> Вот так.... создали метровый файл, а места не убавилось....
Да хоть и гиговый. Только это не во всех *nix'ах так. И при чем тут Apache ?
s> PS. Масдай отсасывает...
Насчет Windows -- не знаю, а в Novell'е, к примеру, это поддерживалось уже
давненько.
=============================================================================
= Apache-Talk@lists.lexa.ru mailing list =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =