c++ - do I need to close a std::fstream? -


possible duplicate:
do need manually close ifstream?

do need call fstream.close() or fstream proper raii object closes stream on destruction?

i have local std::ofstream object inside method. can assume file closed after exiting method without calling close? not find documentation of destructor.

i think previous answers misleading.

fstream is proper raii object, does close automatically @ end of scope, , there absolutely no need whatsoever call close manually when closing @ end of scope sufficient.

in particular, it’s not “best practice” , it’s not necessary flush output.

and while drakosha right calling close gives possibility check fail bit of stream, nobody that, anyway.

in ideal world, 1 call stream.exception(ios::failbit) beforehand , handle exception thrown in fstream’s destructor. unfortunately exceptions in destructors broken concept in c++ that’s not idea.

so if want check success of closing file, manually (but then).


Comments

Popular posts from this blog

java - SNMP4J General Variable Binding Error -

windows - Python Service Installation - "Could not find PythonClass entry" -

Determine if a XmlNode is empty or null in C#? -