Namespaces
Variants
Views
Actions

std::basic_filebuf::close

From cppreference.com
< cpp‎ | io‎ | basic filebuf
Revision as of 21:56, 31 May 2013 by P12bot (Talk | contribs)

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 Template:rlpf, Template:rlpf, Template:rlpf, and Template:rlpf, was Template:rlpf, 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 Template:rlpf.

Contents

Parameters

(none)

Return value

*this on success, a null pointer on failure.

Notes

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

Example

See also

checks if the associated file is open
(public member function) [edit]
[virtual]
destructs a basic_filebuf object and closes the file if it is open
(virtual public member function) [edit]