cerr
es la secuencia de C++ y stderr
es el identificador de archivo C, ambos representan la salida de error estándar.
Usted escribe a ellos de la misma manera que se escribe en otros arroyos y archivo de llaves:
cerr << "Urk!\n";
fprintf (stderr, "Urk!\n");
no estoy seguro de lo que entendemos por "recuperar" en este contexto, la salida va a un error estándar y Eso es. El programa no debe preocuparse por eso después de eso. Si quiere decir cómo guardarlo para más adelante, desde fuera del programa, vea el siguiente párrafo.
Por defecto, que van a ir a su terminal, pero la salida puede ser redirigido a otra parte con algo como:
run_my_prog 2>error.out
Y, sí, la salida "pantalla" es una corriente (o identificador de archivo), pero eso es generalmente solo porque stdout/cout
y stderr/cerr
están conectados a su "pantalla" por defecto. Redirección afectará esto como en el siguiente caso en el que nada se escribirá en la pantalla:
run_my_prog >/dev/null 2>&1
(cosas difíciles como escribir directamente a pesar de /dev/tty
). Ese fragmento redirigirá tanto la salida estándar como el error estándar para ir al cubo de bits.
No hay necesidad de disculparse por hacer una pregunta de novato. SO está destinado a _todos_ niveles de habilidad. – paxdiablo