std::basic_filebuf<CharT,Traits>::close

< cpp‎ | io‎ | basic filebuf
std::basic_filebuf<CharT, Traits>* close();

若放置区存在(即为写入打开文件),则首先调用 overflow(Traits::eof()) 写入所有未决输出到文件,包含任何反迁移序列。

若在 underflow()overflow()seekpos()seekoff() 之中最近调用的函数是 overflow() ,则可能多次调用 std::codecvt::unshift() 以确定按照感染的本地环境的反迁移序列,并将该序列以 overflow(Traits::eof()) 写入文件。

然后,如同用 std::fclose() 关闭文件,不考虑任何之前调用成功或失败。

若作出的任何函数调用,包含对 std::fclose() 的调用失败,则返回空指针。若作出的任何函数调用抛出异常,则捕捉该异常并在调用 std::fclose() 后重抛。若该文件已关闭,则立即返回空指针。

任何情况下,都更新 is_open() 所访问的私有成员变量。

参数

(无)

返回值

成功时为 this ,失败时为空指针。

注意

close() 典型地通过 std::basic_filebuf 的析构函数调用(继而典型地为 std::basic_fstream 的析构函数所调用)。

示例

参阅

检查关联文件是否打开
(公开成员函数)
析构 basic_filebuf 对象并且若打开则关闭文件
(虚公开成员函数)