C - Datei im Speicher erstellen

12

Ich schreibe hier ein kleines Programm in Klarschrift. Was ich brauche, ist eine Datei direkt im Speicher zu erstellen (nicht auf Festplatte geschrieben) Momentan kann ich fopen("filename.txt,"wb") verwenden, um in die Datei zu schreiben.

Ich weiß, dass Sie in Linux fmemopen() verwenden können. Gibt es eine ähnliche Lösung für win32?

    
J Nash 03.09.2012, 14:17
quelle

3 Antworten

0

Ich würde nicht fopen verwenden, da dies eine Datei erstellt.

Um die Datei im Speicher zu erstellen, müssen Sie die Datei erstellen und auf eine Weise speichern, die Sie für richtig halten.

Sie müssen ein Array eines Datentyps erstellen. Ich würde char * verwenden, aber Sie könnten verwenden, was auch immer Sie wollen, um die Imformation zu kodieren. Sie können dann in die Datei lesen und schreiben, indem Sie Informationen zum Array hinzufügen.

    
KennyBartMan 03.09.2012 14:22
quelle
0

Sie könnten mit MapViewOfFile etwas erreichen, das nah ist. Win32 API, die Sie für dieses verwenden sollten, sind:

  

CreateFile (...)

     

CreateFileMapping (...)

     

MapViewOfFile (...)

Vergessen Sie nicht, die Dateizuordnung aufzuheben und zu schließen, wenn Sie fertig sind.

    
Indy9000 03.09.2012 14:32
quelle
0

Diese Funktionalität wird in Windows nicht wirklich unterstützt. Allerdings könnten Sie die high-level stdio-Funktionen neu schreiben, um auf einen Speicherpuffer anstatt auf eine Datei zuzugreifen, oder einfach stdio-ähnliche Funktionen implementieren. Oder Sie könnten eine RAM-Disk implementieren, jedoch könnte die Installation des RAM-Disk-Treibers selbst nicht ausreichen Ihre Regel "Schreibe nicht auf die Festplatte".

    
Clifford 03.09.2012 15:01
quelle

Tags und Links