Сообщение Re: локи клинер, странный юзкейс от 26.02.2015 6:14
Изменено 26.02.2015 6:18 VTT
Использовать scope guard для закрытия файлового дескриптора как-то не комильфо, задействуйте RAII.
А вот для удаления файла на выходе из функции scope guard как раз пригодиться.
Если же все-таки использовать scope guard, то в данном случае стоит задействовать два.
А вот для удаления файла на выходе из функции scope guard как раз пригодиться.
Если же все-таки использовать scope guard, то в данном случае стоит задействовать два.
ScopeGuard file_remover; // при выходе из области видимости удалит файл
// открываем файл
...
ScopeGuard file_closer; // при выходе из области видимости закроет файл
...
// если преждевременный выход из функции закрыть файл и выйти
file_remover.Dismiss(); // удалять файл не надо
return; // файл будет закрыт, но не удален
...
// обычный выход из функции
return; // файл будет закрыт, затем удален
Re: локи клинер, странный юзкейс
Использовать scope guard для закрытия файлового дескриптора как-то не комильфо, задействуйте RAII.
А вот для удаления файла на выходе из функции scope guard как раз пригодится.
Если же все-таки использовать scope guard, то в данном случае стоит задействовать два.
А вот для удаления файла на выходе из функции scope guard как раз пригодится.
Если же все-таки использовать scope guard, то в данном случае стоит задействовать два.
ScopeGuard file_remover; // при выходе из области видимости удалит файл
// открываем файл
...
ScopeGuard file_closer; // при выходе из области видимости закроет файл
...
// если преждевременный выход из функции закрыть файл и выйти
file_remover.Dismiss(); // удалять файл не надо
return; // файл будет закрыт, но не удален
...
// обычный выход из функции
return; // файл будет закрыт, затем удален