std::basic_filebuf<CharT,Traits>:: close
|
std::
basic_filebuf
<
CharT, Traits
>
*
close
(
)
;
|
||
Если существует область вывода (например, файл был открыт для записи), сначала вызывается overflow ( Traits :: eof ( ) ) для записи всех ожидающих выходных данных в файл, включая любые последовательности unshift.
Если последней вызванной функцией из
underflow()
,
overflow()
,
seekpos()
и
seekoff()
была
overflow()
, то вызывается
std::codecvt::unshift()
, возможно несколько раз, для определения последовательности unshift в соответствии с установленной локалью, и записывает эту последовательность в файл с помощью
overflow
(
Traits
::
eof
(
)
)
.
Затем закрывает файл, как если бы был вызван std::fclose() , независимо от того, завершились ли успехом или неудачей любые из предыдущих вызовов.
Если любой из вызовов функций, включая вызов std::fclose() , завершается неудачей, возвращает нулевой указатель. Если любой из вызовов функций генерирует исключение, исключение перехватывается и повторно выбрасывается после закрытия файла. Если файл уже закрыт, немедленно возвращает нулевой указатель.
В любом случае обновляет приватную переменную-член, к которой осуществляется доступ через is_open() .
Содержание |
Параметры
(нет)
Возвращаемое значение
this при успехе, нулевой указатель при неудаче.
Примечания
close()
обычно вызывается через деструктор
std::basic_filebuf
(который, в свою очередь, обычно вызывается деструктором
std::basic_fstream
).
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Отчёты о дефектах
Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 443 | C++98 | the file was written using overflow ( EOF ) | changed to overflow ( Traits :: eof ( ) ) |
| LWG 622 | C++98 |
it was unclear how to handle the
exception thrown during closing |
it is rethrown after closing the file |
Смотрите также
|
проверяет, открыт ли связанный файл
(публичная функция-член) |
|
|
[virtual]
|
уничтожает объект
basic_filebuf
и закрывает файл, если он открыт
(виртуальная публичная функция-член) |