> I have a feeling I know the answer to this already, "yes", but I'll ask
> anyway.
>> If I have a file on a web server that's being served to clients and I
> open it from within a PHP script (or any language that uses the system
> fopen() command I suppose). I seek to a certain part of the file, write
> to the file there (replacing text already there), and it may take
> several seconds, then I close the file again.
>> Question is, while I'm replacing the text in the middle of that file,
> will web users see the old file until I close() it at the end?
No. They will see your changes straightaway.
> Otherwise I've got to go make offline copies of those files..
Yes. Best way is to create a new file and rename(2) it to the
existing file. This is an atomic operation so your web page scripts
will always see either the old, intact file, or the new, intact file.
They will never see an inconsistent file.
Later,
Kenn
Maintained by the ILUG website team. The aim of Linux.ie is to
support and help commercial and private users of Linux in Ireland. You can
display ILUG news in your own webpages, read backend
information to find out how. Networking services kindly provided by HEAnet, server kindly donated by
Dell. Linux is a trademark of Linus Torvalds,
used with permission. No penguins were harmed in the production or maintenance
of this highly praised website. Looking for the
Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!