Namespaces
Variants

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

From cppreference.net
std:: basic_filebuf < CharT, Traits > * close ( ) ;

Wenn ein Put-Bereich existiert (z.B. wurde die Datei zum Schreiben geöffnet), ruft es zuerst overflow ( Traits :: eof ( ) ) auf, um alle ausstehenden Ausgaben in die Datei zu schreiben, einschließlich aller Unshift-Sequenzen.

Wenn die zuletzt aufgerufene Funktion von underflow() , overflow() , seekpos() und seekoff() die Funktion overflow() war, dann ruft sie std::codecvt::unshift() auf, möglicherweise mehrfach, um die Unshift-Sequenz gemäß der eingestellten Locale zu bestimmen, und schreibt diese Sequenz mit overflow ( Traits :: eof ( ) ) in die Datei.

Schließt dann die Datei, als ob durch Aufruf von std::fclose() , unabhängig davon, ob einer der vorherigen Aufrufe erfolgreich war oder fehlgeschlagen ist.

Wenn einer der Funktionsaufrufe, einschließlich des Aufrufs von std::fclose() , fehlschlägt, wird ein Nullzeiger zurückgegeben. Wenn einer der Funktionsaufrufe eine Exception auslöst, wird die Exception abgefangen und erneut ausgelöst, nachdem die Datei geschlossen wurde. Wenn die Datei bereits geschlossen ist, wird sofort ein Nullzeiger zurückgegeben.

In jedem Fall aktualisiert die private Membervariable, auf die durch is_open() zugegriffen wird.

Inhaltsverzeichnis

Parameter

(keine)

Rückgabewert

this bei Erfolg, ein Nullzeiger bei Fehler.

Hinweise

close() wird typischerweise durch den Destruktor von std::basic_filebuf aufgerufen (welcher wiederum typischerweise durch den Destruktor von std::basic_fstream aufgerufen wird).

Beispiel

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 443 C++98 die Datei wurde mit overflow ( EOF ) geschrieben geändert zu overflow ( Traits :: eof ( ) )
LWG 622 C++98 es war unklar, wie mit der
während des Schließens geworfenen Ausnahme umzugehen ist
sie wird nach dem Schließen der Datei erneut geworfen

Siehe auch

prüft, ob die zugehörige Datei geöffnet ist
(öffentliche Elementfunktion)
[virtual]
zerstört ein basic_filebuf Objekt und schließt die Datei, falls sie geöffnet ist
(virtuelle öffentliche Elementfunktion)