0

私は保存データを暗号化するプロジェクトに取り組んでおり、暗号化されていないデータを XML ストリームに書き込むために、暗号化されたデータを一時ファイルに復号化します。暗号化と復号化は機能しますが、ファイルからのデータの読み取りに問題があります。これはファイルがまだ開いているためだと思いますが、ファイルを閉じると削除されるため、ファイルを閉じることができません。このファイルから読み取る方法があるかどうか疑問に思っていますか?

最後の手段として、ファイルの代わりに大きな暗号化されたバッファを使用するようにコードを書き直すことができますが、開いているファイルからデータを読み取る方法を見つけたいと思います。

編集: C++ クラスに復号化ロジックがあり、extern "C" を使用して必要な関数を C に移植することを先に言っておくべきでした。復号化を行う関数は C++ で記述されているため、ファイル記述子から HANDLE を取得し、FlushFileBuffers(HANDLE) を使用してバッファーをフラッシュすることができました。

4

1 に答える 1

1

入力と出力は、C ライブラリ レベルとカーネル レベルの両方でバッファリングできます。あるプロセスからの書き込みは、バッファがフラッシュされるまで、別のプロセスからすぐに見えるとは限りません。C ライブラリの標準 IO 機能を使用fflushしている場合は、ライター プロセスで を使用して、その出力をリーダー プロセスで利用できるようにすることができます。

于 2013-06-20T14:51:31.987 に答える