_ RU.OS.CMP (2:5077/15.22) _________________________________________ RU.OS.CMP _
From : Boris Tobotras 2:5020/510 23 Sep 98 21:20:04
Subj : Re: Винды все заполонили
________________________________________________________________________________
>>>>> "basid" == basid writes:
basid> Оч-хорошо! AFAIK, *nix'ы позволяют удалить файл "молча".
basid> Приложение продалжает читать/писать как ни в чём не бывало,
basid> заканчивает работу и файл удаляется. Угу? Если так, то у меня
basid> вопрос - смысл дальнейшей работы приложения, если файл будет удалён?
Штатный механизм работы со временными файлами. Смотри: мне надо
сгенерировать некий выходной файл. Варианты.
A.
1. open( выходной файл );
2. write( выходной файл );
3. write( выходной файл );
4. write( выходной файл );
5. close( выходной файл );
B.
1. open( временный файл );
2. write( временный файл );
3. write( временный файл );
4. write( временный файл );
5. close( временный файл );
6. rename( временный файл, выходной файл );
C.
1. open( временный файл );
2. unlink( временный файл );
3. write( временный файл );
4. write( временный файл );
5. write( временный файл );
5. close( временный файл );
6. rename( временный файл, выходной файл );
Вариант A: самый плохой. Если во время этапов 2-4 задачу убить,
получим битый файл.
Вариант B: лучше. Если во время этапов 2-4 задачу убить, получим
валяющийся временный файл, зато не побитый файл, с которым
работаем.
Вариант C: самый лучший. И файл не побит будет, и временного файла
не останется.
--
Best regards, -- Boris.
Anyone can build a fast processor. The trick is to build a fast system.
-- Seymour Cray
--- Gnus v5.5/XEmacs 20.3 - "London" * Origin: Linux inside (2:5020/510@fidonet)