2011-07-13 24 views
1

CreateFileMappingは、win32で共有メモリを作成するために使用されます。共有メモリを読み書きする必要がありますか?それとも自動的に行われますか?CreateFileMappingは、win32で共有メモリを作成するために使用されます。

+0

それよりも上でCreateFileMapping関数を()を実行している、非常に奇妙な質問です1つのスレッドはあまり意味がありません。ハンドルを使用する前にハンドルを戻すまで待たなければなりません。もう一方のプロセスは代わりにOpenFileMappingを呼び出します。これは同期する必要があります。まだ存在しないマッピングを開くことはできません。 –

+0

OPは、異なるスレッド/プロセスから共有メモリへのアクセスが自動的に同期されるかどうかを意味しますか? –

+0

はい、私は共有メモリを同期する必要があるかどうかを意味します。 – Hem

答えて

1

スレッドやプロセス間で共有メモリにこれを使用するかどうかは不明ですので、確実に確認してください:ファイルマッピングが不要なスレッドについては、同期が必要です)。

プロセス間で共有メモリを使用するには:はい、システムへの連続した書き込みが単一のトランザクションとしてグループ化されるかどうかをシステムが認識できないため、アクセスを明示的に同期する必要があります。これを行うにヒント:criticalsectionsを使用することはできませんそれらを同期するが(彼らは唯一のプロセス内のスレッドのために働く)、あなたが使用できます。

http://msdn.microsoft.com/en-us/library/aa904937%28v=VS.85%29.aspx

関連する問題