On Tue, 26 Jan 1999, Konstantin Tokar wrote:
> From: Konstantin Tokar <tokar@apmsun.mpei.ac.ru>
> Subject: [apache-talk] Как скопировать файл?
> X-Mailer: Mozilla 4.5 [en] (WinNT; I)
>
> Мне хочется собирать index.html файл из разных запросов к базе данных.
>Вопрос - как его скопировать на место старого index.html, чтобы текущие
> запросы к нему не испортились?
То есть тебе хочется переодически перезаписывать html на диске, при этом
ожидается, что он кем-то (несколькими копиями апача) открыт?
Это зависит от системы. В нормальной OS это делается следующим образом
open F,">index.html.tmp$$";
# пишем в index.html.tmp$$
close F
unlink "index.html" && rename "index.html.tmp$$","index.html"
Ведет это себя следующим образом - при удалении записи в каталоге (unlink)
файл остается жить до тех пор, пока хотя бы один процесс держит на него
filehandle.
Операции unlink и rename в делаются весьма быстро, поэтому шанс, что
кто-то успеет в промежутке между ними обратиться к файлу, близок к 0.
В ненормальной (читай M$) системе - не знаю. Там по-моему операция unlink
на открытый файл просто обламывается.
> --
> Konstantin Tokar, http://www.mpei.ac.ru/tokar/
> =============================================================================
> = 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 =
>
--------------------------------------------------
Victor Wagner vitus@ice.ru
Programmer Office:7-(095)-964-0380
Institute for Commerce Home: 7-(095)-135-46-61
Engineering http://www.ice.ru/~vitus
=============================================================================
= 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 =