Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

CreateFile c OPEN_ALWAYS - Почему каждый раз [D7, Win2k]


OPEN_ALWAYS ©   (2004-10-13 12:46:00) 

Всем привет!
В MSDN написано, что вроде не должен
var
sFile : String;
begin
InitializeCriticalSection(FLock);
sFile  := format('%s\zx.log',[ExtractFilePath(ParamStr(0))]);
FhFile := CreateFile(PChar(sFile),
                     GENERIC_READ or GENERIC_WRITE,
                     FILE_SHARE_READ or FILE_SHARE_WRITE,
                     nil,
                     OPEN_ALWAYS,
                     {FILE_ATTRIBUTE_HIDDEN or} FILE_FLAG_WRITE_THROUGH,
                     0);
if (FhFile = INVALID_HANDLE_VALUE) then
 begin
  FLastError := GetLastError();
 end else
  LogWrite(SM_LOG_START);


OPEN_ALWAYS   (2004-10-13 13:11:00) [1]

MSDN:
RESOLUTION
Break up the CreateFile call with the OPEN_ALWAYS flag into two separate calls to CreateFile.

Call CreateFile with the OPEN_EXISTING flag. If the call to CreateFile succeeds, the file already existed. If the call to CreateFile fails, you can call CreateFile with the OPEN_ALWAYS flag.

Вот так. Не больше и не меньше. На кой тогда вообще этот флаг нужен.


OPEN_ALWAYS   (2004-10-13 12:48:00) [2]

Я хотел сказать, каждый раз создается заново


Наверх

Титульная страница Поиск, карта сайта Написать письмо