Onkel Schuppig
Erfahrenes Mitglied
Hi,
ich bin kürzlich auf die Grenzen der Funktionen
gestossen.
Man sieht, dass Positionen außerhalb des Zahlenbereichs einer long-integer-Variable nicht erreicht werden können, was bedeutet, dass Dateien > 2 GB nicht vollständig lesbar sind.
Gibt es mittlerweile etwas "moderneres"? Muss aber portabel sein (Windows, Unix, Linux, ...).
Dann habe ich noch eine unerwartete schlechte Erfahrung gemacht:
ist ca. 10-mal schneller als
Faktor 10 ist bei solch großen Dateien erheblich. Deshalb will ich nicht unbedingt streams verwenden.
mfG
OS
ich bin kürzlich auf die Grenzen der Funktionen
Code:
long ftell()
int fseek(FILE*, long, int)
Man sieht, dass Positionen außerhalb des Zahlenbereichs einer long-integer-Variable nicht erreicht werden können, was bedeutet, dass Dateien > 2 GB nicht vollständig lesbar sind.
Gibt es mittlerweile etwas "moderneres"? Muss aber portabel sein (Windows, Unix, Linux, ...).
Dann habe ich noch eine unerwartete schlechte Erfahrung gemacht:
Code:
FILE* p_file = fopen("riesige_datei.txt", "r");
char buffer[256];
while(fgets(buffer, 255, p_file));
Code:
ifstream ifs("riesige_datei.txt");
char buffer[256];
while (ifs.getline(buffer, 255));
mfG
OS