<?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[&amp;quot;Zwischenspeicher&amp;quot; in c++]]></title><description><![CDATA[<p>hallo erstmal!<br />
Ich will ein kopierprogramm in C++ schreiben und nutze dafür DevCpp.<br />
Mein Programm soll die Dateien erstmal alle einlesen, im Arbeitsspeicher zwischenspeichern und erst danach auf die Festplatte schreiben.<br />
Mit welchen befehlen kann ich das erreichen?<br />
[Ich stell mir da eine Art Datenkontainer im RAM vor, wo die Daten gelagert werden]</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/229436/quot-zwischenspeicher-quot-in-c</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Apr 2026 05:37:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/229436.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 11 Dec 2008 18:17:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;quot;Zwischenspeicher&amp;quot; in c++ on Thu, 11 Dec 2008 18:17:11 GMT]]></title><description><![CDATA[<p>hallo erstmal!<br />
Ich will ein kopierprogramm in C++ schreiben und nutze dafür DevCpp.<br />
Mein Programm soll die Dateien erstmal alle einlesen, im Arbeitsspeicher zwischenspeichern und erst danach auf die Festplatte schreiben.<br />
Mit welchen befehlen kann ich das erreichen?<br />
[Ich stell mir da eine Art Datenkontainer im RAM vor, wo die Daten gelagert werden]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629022</guid><dc:creator><![CDATA[Nexus_Sphere]]></dc:creator><pubDate>Thu, 11 Dec 2008 18:17:11 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Zwischenspeicher&amp;quot; in c++ on Thu, 11 Dec 2008 18:23:34 GMT]]></title><description><![CDATA[<p>Alles, was du nicht explizit auf die Platte schreiben lässt, bleibt erstmal im Arbeitsspeicher.</p>
<p>Daher erübrigt sich die Frage wohl, wie du dort etwas &quot;zwischenspeichern&quot; kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629028</guid><dc:creator><![CDATA[JustSomeCoder]]></dc:creator><pubDate>Thu, 11 Dec 2008 18:23:34 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Zwischenspeicher&amp;quot; in c++ on Thu, 11 Dec 2008 18:35:51 GMT]]></title><description><![CDATA[<p>also einfach mit fopen() einlesen?<br />
OK! Nochwas: Bei zigtausent Dateien wär der Speicher schnell voll <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Kann mir jemand auf die Sprünge helfen, wie ich nur solange daten einlese bis ein bestimmtes Maximum erreicht ist, und Dateien die dieses Maximum überschreiten in Teile zerlege und sie so geschrieben werden? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Nachdem ich die Datei geschrieben hab, bleibt sie im RAM? wenn ja, wie lösche ich sie dort?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629032</guid><dc:creator><![CDATA[Nexus_Sphere]]></dc:creator><pubDate>Thu, 11 Dec 2008 18:35:51 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Zwischenspeicher&amp;quot; in c++ on Thu, 11 Dec 2008 19:07:50 GMT]]></title><description><![CDATA[<p>Nexus_Sphere schrieb:</p>
<blockquote>
<p>hallo erstmal!<br />
Ich will ein kopierprogramm in C++ schreiben und nutze dafür DevCpp.<br />
Mein Programm soll die Dateien erstmal alle einlesen, im Arbeitsspeicher zwischenspeichern und erst danach auf die Festplatte schreiben.<br />
Mit welchen befehlen kann ich das erreichen?<br />
[Ich stell mir da eine Art Datenkontainer im RAM vor, wo die Daten gelagert werden]</p>
</blockquote>
<p>Hi,</p>
<p>Man nimmt dazu MapViewOfFile().</p>
<p>HANDLE hFile;</p>
<p>hFile = CreateFile( ... )<br />
HANDLE hMap = CreateFileMapping( ... )</p>
<p>hOffset = MapViewOfFile(hMap, ...)</p>
<p>hOffset ist ein Pointer auf die in den virtuellen Speicher gemappte Datei.<br />
Jede Änderung über hOffset gemacht wirkt sich unmittelbar auch in der Datei selbst aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629063</guid><dc:creator><![CDATA[CStern]]></dc:creator><pubDate>Thu, 11 Dec 2008 19:07:50 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Zwischenspeicher&amp;quot; in c++ on Thu, 11 Dec 2008 19:12:04 GMT]]></title><description><![CDATA[<p>OK danke erstmal<br />
bis morgen hab ich dann ja jetzt was zu tun <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="😉"
    /><br />
meld mich wenn ich mehr fragen hab!<br />
gute Nacht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629070</guid><dc:creator><![CDATA[Nexus_Sphere]]></dc:creator><pubDate>Thu, 11 Dec 2008 19:12:04 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Zwischenspeicher&amp;quot; in c++ on Thu, 11 Dec 2008 19:19:59 GMT]]></title><description><![CDATA[<p>OK kann mir villeicht doch noch jemand ein Codebeispiel geben? durch msdn blick ich net durch -.-</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629086</guid><dc:creator><![CDATA[Nexus_Sphere]]></dc:creator><pubDate>Thu, 11 Dec 2008 19:19:59 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Zwischenspeicher&amp;quot; in c++ on Thu, 11 Dec 2008 19:22:26 GMT]]></title><description><![CDATA[<p>CStern schrieb:</p>
<blockquote>
<pre><code class="language-cpp">HANDLE hFile;

hFile = CreateFile( ... )
HANDLE hMap = CreateFileMapping( ... )

hOffset = MapViewOfFile(hMap, ...)
</code></pre>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1629088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629088</guid><dc:creator><![CDATA[JustSomeCoder]]></dc:creator><pubDate>Thu, 11 Dec 2008 19:22:26 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Zwischenspeicher&amp;quot; in c++ on Thu, 11 Dec 2008 19:33:53 GMT]]></title><description><![CDATA[<p>Hab ich schon gesehn^^</p>
<p>Nur: um die Uhrzeit stell ich mich manchmal etwas dumm an <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Ich meine ein Beispiel das kommplett ist und teoretisch arbeiten würde!<br />
(Mini program das funktioniert) Dann seh ich wie genau ich welche der Befehle verwenden muss.</p>
<p>P.S. Sorry wenn ich euch mit meiner Unwissenheit nerve, aber ich bin ja hier um zu lernen^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629094</guid><dc:creator><![CDATA[Nexus_Sphere]]></dc:creator><pubDate>Thu, 11 Dec 2008 19:33:53 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Zwischenspeicher&amp;quot; in c++ on Fri, 12 Dec 2008 11:53:58 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
<p>Nexus_Sphere schrieb:</p>
<blockquote>
<p>OK kann mir villeicht doch noch jemand ein Codebeispiel geben? durch msdn blick ich net durch -.-</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
<p>Nexus_Sphere schrieb:</p>
<blockquote>
<p>Ich meine ein Beispiel das kommplett ist und teoretisch arbeiten würde!<br />
(Mini program das funktioniert) Dann seh ich wie genau ich welche der Befehle verwenden muss.</p>
<p>P.S. Sorry wenn ich euch mit meiner Unwissenheit nerve, aber ich bin ja hier um zu lernen^^</p>
</blockquote>
<p>Dann solltest Du bevor Du weiter programmierst verstehen lernen wie man die MSDN liest und deren Beispiele dort. Und vor allem solltest Du ein bisschen mehr Eigeninitiative zeigen.<br />
Das primitivste wäre ja wohl gewesen mal eine der Funktionen nachzuschlagen z.B.: CreateFileMapping<br />
<a href="http://msdn.microsoft.com/en-us/library/aa366537(VS.85).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/aa366537(VS.85).aspx</a></p>
<p>Und was sehen Deine müden Augen ziemlich weit unten, slebst zu später Stunde:</p>
<blockquote>
<p>For an example, see Creating Named Shared Memory or Creating a File Mapping Using Large Pages.</p>
</blockquote>
<p>Mit zwei wünderschönen Links:<br />
<a href="http://msdn.microsoft.com/en-us/library/aa366551(VS.85).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/aa366551(VS.85).aspx</a><br />
<a href="http://msdn.microsoft.com/en-us/library/aa366543(VS.85).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/aa366543(VS.85).aspx</a></p>
<p>Ganz Allgemein lies mal:<br />
<a href="http://msdn.microsoft.com/en-us/library/aa366883(VS.85).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/aa366883(VS.85).aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629399</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629399</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 12 Dec 2008 11:53:58 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Zwischenspeicher&amp;quot; in c++ on Fri, 12 Dec 2008 12:24:11 GMT]]></title><description><![CDATA[<p>Er sollte programmieren lernen.<br />
Jmd. der nicht programmieren kann, muss die MSDN nicht verstehen (bzw. kann es IMO garnicht).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629419</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 12 Dec 2008 12:24:11 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Zwischenspeicher&amp;quot; in c++ on Fri, 12 Dec 2008 16:48:32 GMT]]></title><description><![CDATA[<p>Mein problem ist mein Schulenglisch. Auf msdn komm ich da nicht sooo sehr weit, weshalb ich diese Seite möglichst meide, trotzdem Danke für die hilfe!<br />
P.S. Ich bin ja grad dabei Programmieren zu lernen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Ich dachte mir nur, da ich kleinere Sachen schon schreiben kann, wachsen meine Fähigkeiten nur mit dem Schwierigkeitsgrad meiner Aufgaben.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/35992">@Martin</a> Richter<br />
der Link <a href="http://msdn.microsoft.com/en-us/library/aa366551" rel="nofollow">http://msdn.microsoft.com/en-us/library/aa366551</a> ist wirklich hilfreich. jetzt wo nicht mehr so viel englischer Text und mehr Code zu finden ist, kann ich auch was daraus lernen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629560</guid><dc:creator><![CDATA[Nexus_Sphere]]></dc:creator><pubDate>Fri, 12 Dec 2008 16:48:32 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Zwischenspeicher&amp;quot; in c++ on Fri, 12 Dec 2008 17:05:43 GMT]]></title><description><![CDATA[<p>So, hab jetzt ein wenig gebastelt:</p>
<p>================================================================================<br />
#include &lt;cstdlib&gt;<br />
#include &lt;iostream&gt;<br />
#include &lt;conio.h&gt;<br />
#include &lt;tchar.h&gt;</p>
<p>int BufferSize = 500;</p>
<p>using namespace std;</p>
<p>int main(int argc, char *argv[])<br />
{<br />
HANDLE hFile;</p>
<p>hFile = CreateFile(<br />
INVALID_HANDLE_VALUE,<br />
NULL, //Standard Accessrights<br />
PAGE_READWRITE, // read/write access<br />
0, // max. object size<br />
BufferSize,<br />
File1);</p>
<p>if (hMapFile == NULL)<br />
{<br />
printf(&quot;fehlschlag...&quot;);<br />
getchar();<br />
return 1;<br />
}</p>
<p>pBuf = (LPTSTR) MapViewOfFile(hMapFile, // handle to map object<br />
FILE_MAP_ALL_ACCESS, // read/write permission<br />
0,<br />
0,<br />
BufferSize);</p>
<p>if (pBuf == NULL)<br />
{<br />
printf(&quot;fehlschlag...&quot;);<br />
return 1;<br />
}</p>
<p>================================================================================<br />
[Ist natürlich noch nicht fertig]<br />
1.Bin ich auf dem richtigen Weg?<br />
2.DevCpp mekert weil HANDLE nicht declariert wurde... Hab ich was vergessen einzubinden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629588</guid><dc:creator><![CDATA[Nexus_Sphere]]></dc:creator><pubDate>Fri, 12 Dec 2008 17:05:43 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Zwischenspeicher&amp;quot; in c++ on Fri, 12 Dec 2008 17:12:40 GMT]]></title><description><![CDATA[<p>Nexus_Sphere schrieb:</p>
<blockquote>
<p>1.Bin ich auf dem richtigen Weg?</p>
</blockquote>
<p>Auf den ersten Blick, ja.</p>
<p>Nexus_Sphere schrieb:</p>
<blockquote>
<p>2.DevCpp mekert weil HANDLE nicht declariert wurde... Hab ich was vergessen einzubinden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p><code>&lt;windows.h&gt;</code> ?!</p>
<p>cheers, Swordfish</p>
<p>PS: Code-Tags ( <code>[cpp]</code> ) sind was Tolles...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629592</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Fri, 12 Dec 2008 17:12:40 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Zwischenspeicher&amp;quot; in c++ on Fri, 12 Dec 2008 18:37:01 GMT]]></title><description><![CDATA[<p>CStern schrieb:</p>
<blockquote>
<p>Nexus_Sphere schrieb:</p>
<blockquote>
<p>hallo erstmal!<br />
Ich will ein kopierprogramm in C++ schreiben und nutze dafür DevCpp.<br />
Mein Programm soll die Dateien erstmal alle einlesen, im Arbeitsspeicher zwischenspeichern und erst danach auf die Festplatte schreiben.<br />
Mit welchen befehlen kann ich das erreichen?<br />
[Ich stell mir da eine Art Datenkontainer im RAM vor, wo die Daten gelagert werden]</p>
</blockquote>
<p>Hi,</p>
<p>Man nimmt dazu MapViewOfFile().</p>
<p>HANDLE hFile;</p>
<p>hFile = CreateFile( ... )<br />
HANDLE hMap = CreateFileMapping( ... )</p>
<p>hOffset = MapViewOfFile(hMap, ...)</p>
<p>hOffset ist ein Pointer auf die in den virtuellen Speicher gemappte Datei.<br />
Jede Änderung über hOffset gemacht wirkt sich unmittelbar auch in der Datei selbst aus.</p>
</blockquote>
<p>Hier File-Mapping zu verwenden halte ich für höchst unsinnig.</p>
<p>Der Sinn des Programms soll ja wohl sein dass es selbst entscheidet was wann wo gelesen und geschrieben wird.<br />
Davon abgesehen kann eine Datei schnell grösser sein als der Bereich den man in den verfügbaren Adressraum mappen kann. Natürlich kann man nur einen Teil einer Datei mappen, und dann den nächsten etc. - aber das ist wohl kaum geeignet jmd. zu empfehlen der noch dabei ist die Grundlagen zu lernen.</p>
<p>Also doppelt unsinnig: nicht geeignet um das zu machen was der OP vermutlich möchte, und nicht geeignet ihm vorzuschlagen, da er damit nicht weit kommen wird.</p>
<p>----</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20155">@Nexus_Sphere</a>:<br />
Nö, du bist total auf dem Holzweg.</p>
<pre><code class="language-cpp">hFile = CreateFile( 
INVALID_HANDLE_VALUE, 
NULL, //Standard Accessrights 
PAGE_READWRITE, // read/write access 
0, // max. object size 
BufferSize, 
File1);
</code></pre>
<p>CreateFile != CreateFileMapping - sind zwei total unterschiedliche Funktionen.</p>
<p>Versuche das ganze über die ganz normalen Win32 File-Funktionen (CreateFile, ReadFile, WriteFile etc.) zu lösen. Oder aber über die IO Funktionen der Standard-Library (fopen, fread, fwrite etc.).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629632</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 12 Dec 2008 18:37:01 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Zwischenspeicher&amp;quot; in c++ on Fri, 12 Dec 2008 19:12:46 GMT]]></title><description><![CDATA[<p>File-Mapping hätte ich für so ein triviales Problem auch niemals verwendet.</p>
<p>Wenn schon in C++ programmiert wird, würde ich auch auf die STL und die darin enthaltene IOstream Library zurückgreifen.</p>
<p><a href="http://www.cplusplus.com/reference/iostream/" rel="nofollow">http://www.cplusplus.com/reference/iostream/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629662</guid><dc:creator><![CDATA[JustSomeCoder]]></dc:creator><pubDate>Fri, 12 Dec 2008 19:12:46 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Zwischenspeicher&amp;quot; in c++ on Fri, 12 Dec 2008 19:25:58 GMT]]></title><description><![CDATA[<p>Das ganze Vorhaben ist doch totaler Käse <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1629670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1629670</guid><dc:creator><![CDATA[Tippgeber]]></dc:creator><pubDate>Fri, 12 Dec 2008 19:25:58 GMT</pubDate></item></channel></rss>