std::basic_filebuf<CharT,Traits>:: close
|
std::
basic_filebuf
<
CharT, Traits
>
*
close
(
)
;
|
||
如果存在放置区域(例如文件以写入模式打开),首先调用 overflow ( Traits :: eof ( ) ) 将所有待处理输出(包括任何unshift序列)写入文件。
若最近调用的函数(在
underflow()
、
overflow()
、
seekpos()
和
seekoff()
中)是
overflow()
,则调用
std::codecvt::unshift()
(可能多次)根据当前植入的区域设置确定退出序列,并通过
overflow
(
Traits
::
eof
(
)
)
将该序列写入文件。
然后,关闭文件,如同调用 std::fclose() 一样,无论之前的任何调用是否成功。
如果任何函数调用(包括对 std::fclose() 的调用)失败,则返回空指针。如果任何函数调用抛出异常,将在关闭文件后捕获并重新抛出该异常。如果文件已关闭,则立即返回空指针。
在任何情况下,都会更新由 is_open() 访问的私有成员变量。
目录 |
参数
(无)
返回值
this 在成功时返回此指针,失败时返回空指针。
注释
close()
通常通过
std::basic_filebuf
的析构函数调用(这又通常由
std::basic_fstream
的析构函数调用)。
示例
|
本节内容不完整
原因:缺少示例 |
缺陷报告
下列行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
| 缺陷报告 | 适用范围 | 发布时行为 | 正确行为 |
|---|---|---|---|
| LWG 443 | C++98 | 文件写入使用 overflow ( EOF ) | 修改为 overflow ( Traits :: eof ( ) ) |
| LWG 622 | C++98 |
未明确说明如何处理
关闭期间抛出的异常 |
在关闭文件后重新抛出该异常 |
参见
|
检查关联文件是否已打开
(公开成员函数) |
|
|
[virtual]
|
销毁
basic_filebuf
对象并在文件打开时关闭文件
(虚公开成员函数) |