std::basic_filebuf<CharT,Traits>:: close
|
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
|
Dieser Abschnitt ist unvollständig
Grund: Kein 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) |