Namespaces
Variants

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

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

Si une zone de sortie existe (par exemple, le fichier a été ouvert en écriture), appelle d'abord overflow ( Traits :: eof ( ) ) pour écrire toute la sortie en attente dans le fichier, y compris les séquences de décalage.

Si la fonction la plus récemment appelée, parmi underflow() , overflow() , seekpos() , et seekoff() , était overflow() , alors elle appelle std::codecvt::unshift() , peut-être plusieurs fois, pour déterminer la séquence de décalage selon les paramètres régionaux imbriqués, et écrit cette séquence dans le fichier avec overflow ( Traits :: eof ( ) ) .

Puis, ferme le fichier comme si en appelant std::fclose() , indépendamment du succès ou de l'échec des appels précédents.

Si l'un des appels de fonction effectués, y compris l'appel à std::fclose() , échoue, retourne un pointeur nul. Si l'un des appels de fonction effectués lance une exception, l'exception est capturée et relancée après la fermeture du fichier. Si le fichier est déjà fermé, retourne immédiatement un pointeur nul.

Dans tous les cas, met à jour la variable membre privée qui est accédée par is_open() .

Table des matières

Paramètres

(aucun)

Valeur de retour

this en cas de succès, un pointeur nul en cas d'échec.

Notes

close() est généralement appelé via le destructeur de std::basic_filebuf (qui, à son tour, est généralement appelé par le destructeur de std::basic_fstream ).

Exemple

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Applicable à Comportement publié Comportement corrigé
LWG 443 C++98 le fichier était écrit en utilisant overflow ( EOF ) modifié en overflow ( Traits :: eof ( ) )
LWG 622 C++98 il n'était pas clair comment gérer
l'exception levée pendant la fermeture
elle est relancée après la fermeture du fichier

Voir aussi

vérifie si le fichier associé est ouvert
(fonction membre publique)
[virtual]
détruit un objet basic_filebuf et ferme le fichier s'il est ouvert
(fonction membre publique virtuelle)