Christian Kruse: C mal wieder, Länge einer Binary

Beitrag lesen

Hallo pl,

Nun, die Länge einer Datei ist plattformunabhängig.

Die maximale Länge einer Datei ist stark abhängig vor der Plattform. Der maximal adressierbare Speicher ist sehr stark abhängig von der Plattform.

Und auch da ist ein Byte ein Byte und was size_t dazu sagt ist uninteressant solange die Binary von einem Nameserver kommt.

Ob du size_t verwendest oder int ist sehr wohl wichtig. Wenn dir eine Funktion size_t zurück gibt, dann ist das plattformabhängig, wie der Wert interpretiert werden muss. Häufig ist es ein unsigned long, wenn du den jetzt als int interpretierst, dann hast du bei Werten jenseits von INT_MAX Bullshit stehen (nämlich einen negativen Wert durch den Überlauf). Benutze konsequent size_t, wo die Bibliotheken es zurückgeben oder erwarten! Du ersparst dir eine Menge Schmerzen.

LG,
CK