Anzeige:
Ergebnis 1 bis 5 von 5

Thema: C: dateien werden größer?

  1. #1
    Registrierter Benutzer
    Registriert seit
    26.12.2001
    Beiträge
    228

    C: dateien werden größer?

    hi,

    ich habe ein kleines Problem mit meinem copy Programm. Wenn ich eine Datei vom Typ *.jpg kopiere, dann wird die neue Datei größer als die alte.

    Das Progamm:
    Code:
    #include <stdlib.h>
    #include <stdio.h>
    
    int main()
    {
       FILE *fpalt, *fpneu;
       char buffer[1024];
       int n,n2;
    
       if( (fpalt= fopen("linux07.jpg", "r")) == NULL)
       {
          printf("open failed\n");
          return 1;
       }
       if( (fpneu = fopen("neu.jpg", "w")) == NULL)
       {
          printf("open failed\n");
          return 2;
       }
    
       while( !feof(fpalt))
       {
          n = fread(buffer,sizeof(char), 1024, fpalt);
          if( n >0 )
          {
             n2 = fwrite(buffer, sizeof(char), 1024, fpneu);
          }
       }
    
       fclose(fpneu);
       fclose(fpalt);
    
       return 0;
    }
    Steve
    pornstars-online.de

  2. #2
    Registrierter Benutzer
    Registriert seit
    24.06.2003
    Beiträge
    486
    jpegs sind binär Dateien,also mußt du die auch binär (öffnen,schreiben,lesen).

  3. #3
    Registrierter Benutzer
    Registriert seit
    26.12.2001
    Beiträge
    228
    Linux unterscheidet doch nicht zischen binär und text. Es bringt nichts "b" als Mode mitanzugeben unter Linux. Außerdem ist es doch so, dass fread und fwrite dazu da sind binäre Daten zu lesen/schreiben.


    Steve
    pornstars-online.de

  4. #4
    Registrierter Benutzer
    Registriert seit
    24.06.2003
    Beiträge
    486
    >>Linux unterscheidet doch nicht zischen binär und text
    Wenn du deinen Code portable halten willst,dann gib "b" mit an.

    Code:
          n = fread(buffer,sizeof(char), 1024, fpalt);
          if( n >0 )
          {
             n2 = fwrite(buffer, sizeof(char), 1024, fpneu);
          }
    hier schreibst du immer 1024 Bytes,egal wieiviele vorher gelesen werden konnten.

  5. #5
    Registrierter Benutzer
    Registriert seit
    26.12.2001
    Beiträge
    228
    ohhh man. Danke, das habe ich wohl übersehen.


    Steve

    PS wenn der Code auf einem "nicht UNix" ausführbar sein soll, gebe ich b an.
    pornstars-online.de

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •