std::basic_filebuf<CharT,Traits>:: close
|
std::
basic_filebuf
<
CharT, Traits
>
*
close
(
)
;
|
||
Si existe un área de salida (por ejemplo, el archivo fue abierto para escritura), primero llama a overflow ( Traits :: eof ( ) ) para escribir toda la salida pendiente al archivo, incluyendo cualquier secuencia de unshift.
Si la función llamada más recientemente, entre
underflow()
,
overflow()
,
seekpos()
, y
seekoff()
, fue
overflow()
, entonces llama a
std::codecvt::unshift()
, quizás múltiples veces, para determinar la secuencia de unshift de acuerdo con la localidad imbucada, y escribe esa secuencia al archivo con
overflow
(
Traits
::
eof
(
)
)
.
Luego, cierra el archivo como si se llamara a std::fclose() , independientemente de si alguna de las llamadas anteriores tuvo éxito o falló.
Si alguna de las llamadas a funciones realizadas, incluida la llamada a std::fclose() , falla, devuelve un puntero nulo. Si alguna de las llamadas a funciones realizadas lanza una excepción, la excepción es capturada y relanzada después de cerrar el archivo. Si el archivo ya está cerrado, devuelve un puntero nulo inmediatamente.
En cualquier caso, actualiza la variable miembro privada a la que accede is_open() .
Contenidos |
Parámetros
(ninguno)
Valor de retorno
this en caso de éxito, un puntero nulo en caso de fallo.
Notas
close()
normalmente se llama a través del destructor de
std::basic_filebuf
(que, a su vez, normalmente se llama por el destructor de
std::basic_fstream
).
Ejemplo
|
Esta sección está incompleta
Motivo: sin ejemplo |
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 443 | C++98 | el archivo se escribió usando overflow ( EOF ) | cambiado a overflow ( Traits :: eof ( ) ) |
| LWG 622 | C++98 |
no estaba claro cómo manejar la
excepción lanzada durante el cierre |
se relanza después de cerrar el archivo |
Véase también
|
verifica si el archivo asociado está abierto
(función miembro pública) |
|
|
[virtual]
|
destruye un objeto
basic_filebuf
y cierra el archivo si está abierto
(función miembro pública virtual) |