[x] unterschiedliche behandlung von binär und textdateien - warum?

Post Reply
Message
Author
User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

[x] unterschiedliche behandlung von binär und textdateien - warum?

#1 Post by Lateralus »

Hallo

Ich habe ein kleines Prog geschrieben, welches eine Datei öffnet, deren Inhalt Zeichen für Zeichen bearbeitet und in eine andere Datei schreibt. Mein Problem: Binärdateien werden anscheinend anders behandelt.

Code: Select all

char c;
FILE *fp;
fp=fopen(argv[i], "rb");

while( (c=getc(fp)) != EOF)
  ...tue was...

fclose(fp);
Tja... zu dem "...tue was..." Teil kommt er nicht. Bei Textdateien aber durchaus - da läuft er ordentliche bis zum Ende der Datei durch.

Es kam auch schon vor, dass er eine Binärdatei etwa zu einem Viertel bearbeitet hat und dann aus der Schleife raus ist.

Ich kapier's nicht...
Last edited by Lateralus on 16. Mar 2005 13:20, edited 1 time in total.

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

#2 Post by hjb »

Hi,

dein Fehler ist, daß du das Resultat von getc einem char zuweist. Das Ergebnis ist aber int.

Zudem ist die Unterscheidung zwischen Binär- und Textdateien eine der vielen Idiotien von Windows und DOS. Unter Linux gibt es die allenfalls im FTP-Protokoll. Das Flag "b" bei fopen ist daher ohne Wirkung.

Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

#3 Post by Lateralus »

Vielen Dank!

Das b-Flag ist auch nur für die Portabilität gedacht (auch wenn's niemals portiert werden soll...)

Post Reply