En C++ , la entrada y la salida se realizan en forma de una secuencia de bytes o más comúnmente conocida como secuencias. cerr y clog están asociados con el flujo de salida de error C estándar stderr, pero cerris es el flujo de error estándar sin búfer, mientras que clog es el flujo de error estándar con búfer. En este artículo, aprenderemos cuál es la diferencia entre estos dos flujos en detalle con ejemplos.
cerr: es el flujo de error estándar sin búfer que se utiliza para generar los errores. Este es un objeto de la clase ostream similar a cout . No tiene búfer, es decir, se utiliza cuando es necesario mostrar el mensaje de error inmediatamente. Como no hay búfer, no puede almacenar el mensaje de error para mostrarlo más tarde. Entonces, simplemente como cerr no tiene búfer, no puede almacenar el mensaje.
Ejemplo:
C++
// c++ program to implement // the above approach #include <iostream> using namespace std; // Driver code int main() { cerr << "the message displayed is unbuffered"; return 0; }
Producción:
clog: es el flujo de error estándar almacenado en búfer que se utiliza para generar los errores. Este también es un objeto de la clase ostream similar a cout . Se almacena en el búfer, es decir, primero se inserta el mensaje de error en el búfer y luego se muestra en la pantalla. Como hay un búfer, puede almacenar el mensaje de error para mostrarlo más tarde, a diferencia de cerr . Entonces, simplemente como la obstrucción se almacena en búfer, no puede mostrar el mensaje de inmediato. clog se usa comúnmente para fines de registro. Para el registro de eventos no críticos, la eficiencia es más importante, por lo que se prefiere clog a cerr .
Ejemplo:
C++
// C++ program to implement // the above approach #include <iostream> using namespace std; // Driver code int main() { clog << "the message displayed is buffered"; return 0; }
Producción:
Tabla de diferencias:
cerrar |
obstruir |
|
---|---|---|
1. | Es un flujo de error estándar sin búfer | Es un flujo de error estándar almacenado en búfer |
2. | Se utiliza para mostrar el error. | Se utiliza para el registro. |
3. | Se utiliza para mostrar el mensaje inmediatamente. | No puede mostrar el mensaje inmediatamente. |
4. | No puede almacenar el mensaje para mostrarlo más tarde. | Puede almacenar el mensaje en el búfer para mostrarlo más tarde. |
5. | La «c» en cerr se refiere a «carácter» y ‘err’ significa «error». Por lo tanto, cerr significa «error de carácter». | La «c» en clog se refiere a «carácter» y ‘log’ se refiere a «registro», por lo tanto, clog significa «registro de caracteres». |
6. | Es menos eficiente que clog porque es una salida sin búfer. | Es más eficiente que cerr porque es una salida almacenada en búfer. |
7. | Se prefiere para errores críticos (errores que pueden causar fallas en el sistema). | No se prefiere para errores críticos (errores que pueden causar fallas en el sistema). |