23

ここではプレーンな C で小さなプログラムを書いています。私が必要とするのは、メモリ内に直接ファイルを作成することです(ハードディスクに書き込まれるのではありません)現在fopen("filename.txt,"wb")、ファイルへの書き込みに使用できます。

Linux ではfmemopen(). win32にも同様の解決策はありますか?

4

4 に答える 4

1

このような機能は、Windows では本質的にサポートされていません。ただし、高レベルの stdio 関数を書き直して、ファイルではなくメモリ バッファーにアクセスするか、単に stdio のような関数を実装することができます。または、 RAM ディスクを実装することもできますが、RAM ディスク ドライバーをインストールすること自体が、「ディスクに書き込みをしない」という規則を満たさない場合があります。

于 2012-09-03T15:01:05.223 に答える
1

MapViewOfFile で近いものを実現できます。これに使用する Win32 API は次のとおりです。

ファイルの作成(...)

CreateFileMapping(...)

MapViewOfFile(...)

完了したら、マッピングを解除してファイル マッピングを閉じることを忘れないでください。

于 2012-09-03T14:32:38.747 に答える
0

これはファイルを作成するので、私は fopen を使用しません。

メモリ内にファイルを作成するには、ファイルを作成し、適切と思われる方法で保存する必要があります。

いくつかのデータ型の配列を作成する必要があります。私は char* を使用しますが、情報をエンコードしたいものは何でも使用できます。その後、配列に情報を追加することで、ファイルの読み取りと書き込みを行うことができます。

于 2012-09-03T14:22:33.753 に答える