Memorystream fuer fwrite

26/08/2010 - 18:14 von Curtis Newton | Report spam
Hallo,

um rauszufinden, wie gross eine Datei werden würde, würde ich gerne ein
Dummydatei im Speicher binàr öffnen und darin schreiben. Etwa so:

FILE *f=fopen(MEMORY, "wb"); // oeffnet Datei im Speicher
fwrite();
...

Ich finde leider nicht die richtigen Stichworte, um die passenden
Funktionen herauszufinden. Daher wàre ich für einen Tip dankbar!

C.
Bye
 

Lesen sie die antworten

#1 Markus Schaber
27/08/2010 - 10:16 | Warnen spam
Hi,

On 26 Aug., 18:14, Curtis Newton wrote:
um rauszufinden, wie gross eine Datei werden würde, würde ich gerne ein
Dummydatei im Speicher binàr öffnen und darin schreiben. Etwa so:

FILE *f=fopen(MEMORY, "wb"); // oeffnet Datei im Speicher
fwrite();
...

Ich finde leider nicht die richtigen Stichworte, um die passenden
Funktionen herauszufinden. Daher wàre ich für einen Tip dankbar!



in .NET gibts das schon fertig (http://msdn.microsoft.com/de-de/
library/system.io.memorystream%28VS.80%29.aspx). In C++ könntest Du
dir analog dazu selbst einen Stream implementieren.

Für C auf nacktem windows - wenn Du nicht seeken musst, sondern nur
schreiben - könntest Du einen lokalen Socket oder eine Named Pipe
öffnen, und in einem zweiten Thread draus lesen und mitzàhlen. Das
hàtte den Vorteil, dass Du auch bei großen Dateien nur begrenzt
Speicher belegst.

Eine zweite möglichkeit wàre, alle Aufrufe der Schreibfunktionen durch
Aufrufe über einen Funktionszeiger zu ersetzen. Dann kannst Du zur
Laufzeit entweder die echte Schreibfunktion reingeben, oder eine, die
nur die Bytes zàhlt.

HTH,
markus

Gruß,
Markus

Ähnliche fragen