<?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[Zugriffsverletzung bei fclose(*FILE)]]></title><description><![CDATA[<p>Moin,</p>
<p>Ich arbeite gerade an einem Programm, das an bestimmten Stellen immer wieder den aktuellen Status in eine Log-Datei schreibt.</p>
<p>Ich habe mehrere Subroutinen in denen jeweils am Anfang</p>
<pre><code>FILE *stream;
stream = fopen(&quot;log.out&quot;, &quot;a&quot;);
</code></pre>
<p>und am Ende</p>
<pre><code>fclose(stream);
</code></pre>
<p>steht. Diese ganzen Routinen werden etwa alle 10 Sekunden durchlaufen und nur ziemlich selten wird dann auch wirklich was mit fprintf(stream,&quot;...&quot;) in die Datei geschrieben.</p>
<p>Das alles läuft soweit ganz gut. Nur nachdem das Programm etwas eine Stunde lief stürzt das Programm irgendwann mit einer Fehlermeldung ( Zugriffsverletzung bei .... ) ab. Das ganze passiert in der fclose() Funktion.</p>
<p>Irgendwelche Ideen woran das liegen könnte ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/144020/zugriffsverletzung-bei-fclose-file</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 14:06:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/144020.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 Apr 2006 18:20:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zugriffsverletzung bei fclose(*FILE) on Thu, 13 Apr 2006 18:21:33 GMT]]></title><description><![CDATA[<p>Moin,</p>
<p>Ich arbeite gerade an einem Programm, das an bestimmten Stellen immer wieder den aktuellen Status in eine Log-Datei schreibt.</p>
<p>Ich habe mehrere Subroutinen in denen jeweils am Anfang</p>
<pre><code>FILE *stream;
stream = fopen(&quot;log.out&quot;, &quot;a&quot;);
</code></pre>
<p>und am Ende</p>
<pre><code>fclose(stream);
</code></pre>
<p>steht. Diese ganzen Routinen werden etwa alle 10 Sekunden durchlaufen und nur ziemlich selten wird dann auch wirklich was mit fprintf(stream,&quot;...&quot;) in die Datei geschrieben.</p>
<p>Das alles läuft soweit ganz gut. Nur nachdem das Programm etwas eine Stunde lief stürzt das Programm irgendwann mit einer Fehlermeldung ( Zugriffsverletzung bei .... ) ab. Das ganze passiert in der fclose() Funktion.</p>
<p>Irgendwelche Ideen woran das liegen könnte ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1037051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1037051</guid><dc:creator><![CDATA[Kone]]></dc:creator><pubDate>Thu, 13 Apr 2006 18:21:33 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei fclose(*FILE) on Thu, 13 Apr 2006 18:25:44 GMT]]></title><description><![CDATA[<p>Abstürze in fclose deuten (wenn der stream-Zeiger gültig und nicht NULL ist natürlich) allermeistens darauf hin dass Du Dir irgendwo anders (unter Umständen lange vorher) den Speicher kaputtgeschrieben hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1037056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1037056</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 13 Apr 2006 18:25:44 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei fclose(*FILE) on Thu, 13 Apr 2006 18:26:46 GMT]]></title><description><![CDATA[<p>Dateien in Form von FILE* gehören zu C und nicht zu C++, d.h. du bist im falschen<br />
Sub-Forum, hier wird mit fstream, usw. gearbeitet.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1037058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1037058</guid><dc:creator><![CDATA[AberHallo]]></dc:creator><pubDate>Thu, 13 Apr 2006 18:26:46 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei fclose(*FILE) on Thu, 13 Apr 2006 18:36:21 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Abstürze in fclose deuten (wenn der stream-Zeiger gültig und nicht NULL ist natürlich) allermeistens darauf hin dass Du Dir irgendwo anders (unter Umständen lange vorher) den Speicher kaputtgeschrieben hast.</p>
</blockquote>
<p>Hm, und was wären so typische Beispiele wie man den Speicher kaputtschreiben kann ? Ich finde das wie gesagt ziemlich komisch, dass das Programm ne Stunde lang dasselbe macht und irgendwann ist dann wie's aussieht der Speicher hinüber.</p>
<p>AberHallo schrieb:</p>
<blockquote>
<p>Dateien in Form von FILE* gehören zu C und nicht zu C++, d.h. du bist im falschen<br />
Sub-Forum, hier wird mit fstream, usw. gearbeitet.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Oops <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1037066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1037066</guid><dc:creator><![CDATA[Kone]]></dc:creator><pubDate>Thu, 13 Apr 2006 18:36:21 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei fclose(*FILE) on Thu, 13 Apr 2006 18:41:03 GMT]]></title><description><![CDATA[<p>Buffer Overflow</p>
<pre><code class="language-cpp">char* quelle = &quot;dreizehn byte&quot;;
char ziel[10];

strcpy (ziel, quelle);
</code></pre>
<p>Hier wird z.B. über die Grenze von Ziel geschrieben.</p>
<p>Kann auch sein, dass du Speicher löschst, aber dann einen Pointer auf diesen Speicherbereich verwendest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1037068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1037068</guid><dc:creator><![CDATA[Neku]]></dc:creator><pubDate>Thu, 13 Apr 2006 18:41:03 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei fclose(*FILE) on Thu, 13 Apr 2006 18:40:59 GMT]]></title><description><![CDATA[<p>Hm, typisches Beispiel?</p>
<pre><code class="language-cpp">char text[100];
text[100] = '\0';
</code></pre>
<p>Analog mit new, malloc, und in tausend Variationen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Tipp: Ein Memory Debugger wie valgrind (weiss ja nicht auf was für ner Plattform Du Dich bewegst) spürt sowas auf wenn es passiert, nicht erst wenn sich die Auswirkung zeigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1037069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1037069</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 13 Apr 2006 18:40:59 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei fclose(*FILE) on Thu, 13 Apr 2006 19:06:17 GMT]]></title><description><![CDATA[<p>Hm, aber ich hab doch nur fopen(), fclose() und ab und zu n fprintf() dazwischen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1037101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1037101</guid><dc:creator><![CDATA[Kone]]></dc:creator><pubDate>Thu, 13 Apr 2006 19:06:17 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei fclose(*FILE) on Thu, 13 Apr 2006 19:09:03 GMT]]></title><description><![CDATA[<p>Dein Programm muss doch sonst noch irgendetwas machen?!</p>
<pre><code class="language-cpp">if (stream)  // ist aber glaube ich nicht nötig
	fclose (stream);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1037103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1037103</guid><dc:creator><![CDATA[Neku]]></dc:creator><pubDate>Thu, 13 Apr 2006 19:09:03 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei fclose(*FILE) on Thu, 13 Apr 2006 19:31:37 GMT]]></title><description><![CDATA[<p>ja schon, aber wichtig ist doch nur das was mit &quot;stream&quot;(FILE*) arbeitet oder ?<br />
Könnte es vielleicht Probleme verursachen wenn man tausendmal fopen=... und fclose() macht ohne dass dazwischen ein fprintf() steht ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1037122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1037122</guid><dc:creator><![CDATA[Kone]]></dc:creator><pubDate>Thu, 13 Apr 2006 19:31:37 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei fclose(*FILE) on Thu, 13 Apr 2006 19:47:40 GMT]]></title><description><![CDATA[<p>Kone schrieb:</p>
<blockquote>
<p>ja schon, aber wichtig ist doch nur das was mit &quot;stream&quot;(FILE*) arbeitet oder ?<br />
Könnte es vielleicht Probleme verursachen wenn man tausendmal fopen=... und fclose() macht ohne dass dazwischen ein fprintf() steht ?</p>
</blockquote>
<p>Andere Programmteile haben ebenfalls Zugriff auf den gesamten Speicherbereich und können somit bei Programmfehlern auch überall Probleme verursachen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1037130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1037130</guid><dc:creator><![CDATA[Neku]]></dc:creator><pubDate>Thu, 13 Apr 2006 19:47:40 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei fclose(*FILE) on Fri, 14 Apr 2006 10:23:50 GMT]]></title><description><![CDATA[<p>Ok, so langsam komme ich dahinter. Mit Hilfe eines Memory Debuggers hab ich jetzt rausgefunden dass es einige Speicherlecks bei mir gibt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> . Ich hab mehrere male ein free(*ptr) nach einem *ptr = malloc(...) vergessen.<br />
Ich hab jetzt den &quot;Dauerbetrieb&quot; noch nicht getestet, aber ich hoffe das war's.</p>
<p>Danke für eure Geduld <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1037353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1037353</guid><dc:creator><![CDATA[Kone]]></dc:creator><pubDate>Fri, 14 Apr 2006 10:23:50 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei fclose(*FILE) on Fri, 14 Apr 2006 13:38:49 GMT]]></title><description><![CDATA[<p>Bei C++ benutzt man auch nicht mehr malloc und free <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /> (es sei denn man überläd new und delete global).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1037463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1037463</guid><dc:creator><![CDATA[Neku]]></dc:creator><pubDate>Fri, 14 Apr 2006 13:38:49 GMT</pubDate></item></channel></rss>