ここではプレーンな C で小さなプログラムを書いています。私が必要とするのは、メモリ内に直接ファイルを作成することです(ハードディスクに書き込まれるのではありません)現在fopen("filename.txt,"wb")
、ファイルへの書き込みに使用できます。
Linux ではfmemopen()
. win32にも同様の解決策はありますか?
このような機能は、Windows では本質的にサポートされていません。ただし、高レベルの stdio 関数を書き直して、ファイルではなくメモリ バッファーにアクセスするか、単に stdio のような関数を実装することができます。または、 RAM ディスクを実装することもできますが、RAM ディスク ドライバーをインストールすること自体が、「ディスクに書き込みをしない」という規則を満たさない場合があります。
MapViewOfFile で近いものを実現できます。これに使用する Win32 API は次のとおりです。
完了したら、マッピングを解除してファイル マッピングを閉じることを忘れないでください。
これはファイルを作成するので、私は fopen を使用しません。
メモリ内にファイルを作成するには、ファイルを作成し、適切と思われる方法で保存する必要があります。
いくつかのデータ型の配列を作成する必要があります。私は char* を使用しますが、情報をエンコードしたいものは何でも使用できます。その後、配列に情報を追加することで、ファイルの読み取りと書き込みを行うことができます。