<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Frage zu std::cerr]]></title><description><![CDATA[<p>Hallo,<br />
ich leite in meinem Programm den <code>std::cerr</code> stream in einen eigenen Filestream um. Dabei speicher ich den alten streambuf von cerr und weise ihm cerr wieder im Destruktor zu.<br />
Muss ich das überhaupt machen. Existiert cerr nur für mein Programm?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/287727/frage-zu-std-cerr</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 10:25:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/287727.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 02 Jun 2011 22:38:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu std::cerr on Thu, 02 Jun 2011 22:38:11 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich leite in meinem Programm den <code>std::cerr</code> stream in einen eigenen Filestream um. Dabei speicher ich den alten streambuf von cerr und weise ihm cerr wieder im Destruktor zu.<br />
Muss ich das überhaupt machen. Existiert cerr nur für mein Programm?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072583</guid><dc:creator><![CDATA[Pikkolini]]></dc:creator><pubDate>Thu, 02 Jun 2011 22:38:11 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu std::cerr on Thu, 02 Jun 2011 22:42:26 GMT]]></title><description><![CDATA[<p>cerr wird normalerweise auf die Konsole umgeleitet, die die Ausgaben aber auch unabhängig von der Standard-Ausgabe verarbieten kann.<br />
(z.B. <code>prog &gt; out.txt 2&gt; err.txt</code> leitet normale und Fehlerausgaben in zwei Dateien)</p>
<p>Zu deiner Frage: Ob du das machen <em>mußt</em>, weiß ich nicht - die meisten Menschen machen es nicht und kommen auch gut so aus. Vielleicht solltest du mal erklären, warum du denkst, diese Umleitung nötig zu haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072585</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 02 Jun 2011 22:42:26 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu std::cerr on Thu, 02 Jun 2011 23:30:50 GMT]]></title><description><![CDATA[<p>Nein, die Frage ist nicht, ob ich cerr umleiten muss, sondern ob ich cerr beim Schließen des Programms wieder seinen alten streambuf zuweisen muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072598</guid><dc:creator><![CDATA[Pikkolini]]></dc:creator><pubDate>Thu, 02 Jun 2011 23:30:50 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu std::cerr on Fri, 03 Jun 2011 08:39:08 GMT]]></title><description><![CDATA[<p>Pikkolini schrieb:</p>
<blockquote>
<p>Nein, die Frage ist nicht, ob ich cerr umleiten muss, sondern ob ich cerr beim Schließen des Programms wieder seinen alten streambuf zuweisen muss.</p>
</blockquote>
<p>Nein, musst du nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072679</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 03 Jun 2011 08:39:08 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu std::cerr on Fri, 03 Jun 2011 09:05:12 GMT]]></title><description><![CDATA[<p>Pikkolini schrieb:</p>
<blockquote>
<p>Nein, die Frage ist nicht, ob ich cerr umleiten muss,</p>
</blockquote>
<p>Die Frage ist eher, warum du cerr umleiten solltest?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072692</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 03 Jun 2011 09:05:12 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu std::cerr on Fri, 03 Jun 2011 14:10:25 GMT]]></title><description><![CDATA[<p>Zuerst einmal gibt es -nunja - 2 Arten von Umleitungen. Die erste Umleitung wird von der Konsole durchgeführt und ist unabhängig davon wie das Programm das selber nacht.</p>
<p>Die zweite Art der Umleitung ist die innerhalb des Programms selber. Es gibt das globale Objekt <code>std::cerr</code> , das im Normalfall alles an den Fehlerkanal ausgibt. Dieses globale Objekt kann ich aber 'verbiegen' so dass es die Ausgabe zu einem von mir selber definierten Kanal weiter gibt (z.B. eine eigene Datei). Da das rein Programmintern funktioniert kann man das auch nach Programmende <em>schmutzig</em> hinterlassen.</p>
<p>Aber: Das Objekt auf das <code>std::cerr</code> wird zerstört und die Umleitung wird nicht berichtigt =&gt; Gibt man dann etwas auf std::err aus, so laufen diese Daten in ein bereits zuerstörtes Objekt (bumm). Es ist also immer besser aufzuräumen. Es kann zwar sein dass das jetzt nicht passiert, aber der Code wird weiterentwickelt und irgendwann geschieht das doch in irgendwelchen Ausnahmefällen - da sucht man sich nach so einem Fehler die Augen wund.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072823</guid><dc:creator><![CDATA[tunichtgut]]></dc:creator><pubDate>Fri, 03 Jun 2011 14:10:25 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu std::cerr on Fri, 03 Jun 2011 14:14:40 GMT]]></title><description><![CDATA[<p>Selbst wenn du nichts mehr nach cerr ausgeben willst, versucht der Stream auf jeden Fall irgendwann während der Endsequenz, seinen Puffer wieder freizugeben. Und das bedeutet dann womöglich, daß dein Programm sich auf die harte Tour beendet (SegFault o.ä.).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072826</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 03 Jun 2011 14:14:40 GMT</pubDate></item></channel></rss>