Страница 1 из 1
Результат WriteFile
Добавлено: 21 окт 2015, 10:09
Сионист
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - не ноль.
Если функция завершается с ошибкой, величина возвращаемого значения - ноль. Чтобы получить дополнительные сведения об ошибке, вызовите GetLastError.
Значит ли это, что можно заменить
Код: Выделить всё
WriteFile(File, (void*)FormatMarker, sizeof(FormatMarker), &Writen, nullptr);
if (Writen!=sizeof(FormatMarker))
{
CloseHandle(File);
return false;
}
на
Код: Выделить всё
if (WriteFile(File, (void*)FormatMarker, sizeof(FormatMarker), nullptr, nullptr)==0)
if (Writen!=sizeof(FormatMarker))
{
CloseHandle(File);
return false;
}
? Что здесь вообще понимается под ошибкой?
Re: Результат WriteFile
Добавлено: 21 окт 2015, 10:15
somewhere
При таком раскладе было бы логично вот так:
Код: Выделить всё
if (WriteFile(File, (void*)FormatMarker, sizeof(FormatMarker), nullptr, nullptr)==0)
{
CloseHandle(File);
return false;
}
Re: Результат WriteFile
Добавлено: 21 окт 2015, 10:46
Сионист
А ну да, именно это я и имел ввиду. Недозаменил. Вопрос в том, адекватна ли такая замена? Понимается ли под ошибкой просто факт отличия количества фактически записанных байтов от значения третьего параметра функции?
Re: Результат WriteFile
Добавлено: 21 окт 2015, 10:52
Romeo
Под ошибкой имеется в виду любая непредвиденная ситуация (от закончившегося места до аппаратного сбоя), которая не позволила произвести запись в файл. Так что замена вполне адекватна.