std::basic_filebuf<CharT,Traits>::close (3) - Linux Manuals

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


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


std::basic_filebuf<CharT, Traits>* close();

If a put area exist (e.g. file was opened for writing), first calls overflow(Traits::eof()) to write all pending output to the file, including any unshift sequences.
If the most recently called function, out of underflow(), overflow(), seekpos(), and seekoff(), was overflow(), then calls std::codecvt::unshift(), perhaps multiple times, to determine the unshift sequence according to the imbued locale, and writes that sequence to file with overflow(Traits::eof()).
Then, closes the file as if by calling std::fclose(), regardless of whether any of the preceding calls succeeded or failed.
If any of the function calls made, including the call to std::fclose(), fails, returns a null pointer. If any of the function calls made throws an exception, the exception is caught and rethrown after calling std::fclose(). If the file is already closed, returns a null pointer right away.
In any case, updates the private member variable that is accessed by is_open().



Return value

this on success, a null pointer on failure.


close() is typically called through the destructor of std::basic_filebuf (which, in turn, is typically called by the destructor of std::basic_fstream.


 This section is incomplete
 Reason: no example

See also

             checks if the associated file is open
is_open (public member function)

destructor destructs a basic_filebuf object and closes the file if it is open
             (virtual public member function)