On Tue, 26 Jan 1999, Konstantin Tokar wrote:
> From: Konstantin Tokar <tokar@xxxxxxxxxxxxxxxxx>
> 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@xxxxxxxxxxxxx mailing list =
> Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
> = Archive avaliable at http://www.lexa.ru/apache-talk =
>
--------------------------------------------------
Victor Wagner vitus@xxxxxx
Programmer Office:7-(095)-964-0380
Institute for Commerce Home: 7-(095)-135-46-61
Engineering http://www.ice.ru/~vitus
=============================================================================
= 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" 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.