<?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[Dateigröße einer wirklich großen Datei auslesen]]></title><description><![CDATA[<p>Hi.<br />
Ich bin nicht sicher, evtl gehört das ins Linux-board, aber ich poste mal hier...</p>
<p>Ich versuche, /dev/hda1 zu öffnen und auszulesen. Öffnen klappt prima, aber die Dateigröße lässt sich nicht auslesen, statt dessen liefert mir perror folgende meldung: &quot;Value too large for defined data type&quot;. Der definierte Datentyp ist ein unsigned long.</p>
<p>Naja, mal etwas code:</p>
<pre><code class="language-cpp">FILE*	pSourceFile	= 0;
    filename = argv[1];
    pSourceFile	= fopen(argv[1] , &quot;rb&quot;);
    if(pSourceFile == NULL)
        printf(&quot;Error in opening file.\r\n&quot;);
    struct	stat	sz;
    stat(argv[1] , &amp;sz);
    size = sz.st_size;
    if(size == 0)
    {

        fseek (pSourceFile,0,SEEK_END);
        size = ftell(pSourceFile);
        if(size == -1)
            perror(&quot;Error: Unable to get the real file size: &quot;);
    }    

    data = (unsigned char*)malloc(size);
    if(data == NULL)
        printf(&quot;Error in allocating memory [%i Mbytes]\r\n&quot;, size/1024/1024);

    if(fread (data , 1 , size , pSourceFile) == 0)
    {
        perror(&quot;Error in reading file &quot;);
        refresh();
        endwin();
        return 1;
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/166321/dateigröße-einer-wirklich-großen-datei-auslesen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 09:22:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/166321.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 28 Nov 2006 09:37:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dateigröße einer wirklich großen Datei auslesen on Tue, 28 Nov 2006 09:37:33 GMT]]></title><description><![CDATA[<p>Hi.<br />
Ich bin nicht sicher, evtl gehört das ins Linux-board, aber ich poste mal hier...</p>
<p>Ich versuche, /dev/hda1 zu öffnen und auszulesen. Öffnen klappt prima, aber die Dateigröße lässt sich nicht auslesen, statt dessen liefert mir perror folgende meldung: &quot;Value too large for defined data type&quot;. Der definierte Datentyp ist ein unsigned long.</p>
<p>Naja, mal etwas code:</p>
<pre><code class="language-cpp">FILE*	pSourceFile	= 0;
    filename = argv[1];
    pSourceFile	= fopen(argv[1] , &quot;rb&quot;);
    if(pSourceFile == NULL)
        printf(&quot;Error in opening file.\r\n&quot;);
    struct	stat	sz;
    stat(argv[1] , &amp;sz);
    size = sz.st_size;
    if(size == 0)
    {

        fseek (pSourceFile,0,SEEK_END);
        size = ftell(pSourceFile);
        if(size == -1)
            perror(&quot;Error: Unable to get the real file size: &quot;);
    }    

    data = (unsigned char*)malloc(size);
    if(data == NULL)
        printf(&quot;Error in allocating memory [%i Mbytes]\r\n&quot;, size/1024/1024);

    if(fread (data , 1 , size , pSourceFile) == 0)
    {
        perror(&quot;Error in reading file &quot;);
        refresh();
        endwin();
        return 1;
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1182897</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182897</guid><dc:creator><![CDATA[Filesizer]]></dc:creator><pubDate>Tue, 28 Nov 2006 09:37:33 GMT</pubDate></item><item><title><![CDATA[Reply to Dateigröße einer wirklich großen Datei auslesen on Tue, 28 Nov 2006 09:47:56 GMT]]></title><description><![CDATA[<p>Filesizer schrieb:</p>
<blockquote>
<p>Hi.<br />
Ich bin nicht sicher, evtl gehört das ins Linux-board, aber ich poste mal hier...</p>
</blockquote>
<p>Durchaus möglich. Wenn ich mir deinen Code ansehe, gehrt es auf jeden Fall nicht ins C**++** Board.</p>
<blockquote>
<p>Ich versuche, /dev/hda1 zu öffnen und auszulesen. Öffnen klappt prima, aber die Dateigröße lässt sich nicht auslesen, statt dessen liefert mir perror folgende meldung: &quot;Value too large for defined data type&quot;. Der definierte Datentyp ist ein unsigned long.</p>
</blockquote>
<p>Erstens: An welcher Stelle kommt denn der Fehler?<br />
Zweitens: Schonmal daran gedacht, daß unsigned long zu klein sein könnte? (stat.st_size ist ein off_t - bin mir nicht sicher, wie groß das ist)<br />
Drittens: Da du schon die Methode über fseek/ftell kennst, solltest du sie auch sofort nutzen - ist portabler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182900</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 28 Nov 2006 09:47:56 GMT</pubDate></item><item><title><![CDATA[Reply to Dateigröße einer wirklich großen Datei auslesen on Wed, 29 Nov 2006 09:12:28 GMT]]></title><description><![CDATA[<p>Der Fehler tritt in Zeile 13 auf.<br />
Inzwischen habe ich gemerkt, dass es vollkommen egal ist, ob ich</p>
<pre><code class="language-cpp">size = ftell(pSourceFile);
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">ftell(pSourceFile);
</code></pre>
<p>scheibe... Es kommt trotzdem der Fehler, der Datentyp sei zu klein.</p>
<p>Doch inzwischen weiß ich, dass stat mir die richtige Größe nennt, /dev/hda1 ist 0 bytes groß. Nur, wo steht denn jetzt die größe von hda1?</p>
<p>-&gt; biite ins Linux/Unix-Board verschieben, danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183614</guid><dc:creator><![CDATA[Filesizer]]></dc:creator><pubDate>Wed, 29 Nov 2006 09:12:28 GMT</pubDate></item></channel></rss>