Если у меня есть std::ofstream
, который может быть или не быть открыт, безопасно ли пытаться close
независимо? В других словах close()
делать что-нибудь противное (исключение и т.д.), Если !is_open()
. Например
std::ofstream out;
if (some_condition)
{
out.open(path, std::ios::out);
}
После того как я закончил с файлом, могу ли я просто сказать
out.close();
Или сначала нужно проверить
if (out.is_open())
out.close();
Единственное описание std::basic_fstream::close
в cppreference -
Закрывает связанный файл.
Эффективно вызываетrdbuf()->close()
. Если во время работы возникает ошибка, вызываетсяsetstate(failbit)
.