0

ファイルを介して通信する必要があるいくつかのプログラムを C で作成しています。

通信が線形ではないため、ファイルを使用します。つまり、プログラム #5 は、プログラム #2 が作成したファイルを使用できます。

これらのプログラムの実行は線形 (シリアル) になります。

これらのカスケード プログラムの実行を管理する単一の制御プログラムがあります。このプログラムがファイルを作成し、ファイル名のみをプログラムに渡す必要があります

ディスク I/O が遅いため (OS がこれらの操作をキャッシュしないと仮定します)、メモリ マップ ファイルを使用する必要があります。

ただし、要件は、制御プログラムが通常のファイルとメモリ マップ ファイルをシームレスに切り替えることができることです。つまり、カスケード プログラムは、メモリ マップ ファイルと通常のファイルのどちらに対して書き込み/読み取りを行っているかを認識しない必要があります。 1。

システムの残りの部分には通常のファイルとして表示されるファイルを作成するにはどうすればよいですか (FS 階層に場所があり、ファイル名があり、読み取りと書き込みが可能です)、実際にはメモリ内にあり、ファイルにはありません。ディスク?

4

1 に答える 1

2

ここで使用している用語は少し奇妙です。メモリ マッピングはファイル (任意のファイル) にアクセスする方法であり、ディスクに保存されているファイルとは別の種類のファイルではありません。

そうは言っても、ファイルの一部をディスクに書き出し、一部をディスクに書き出したくない場合、それを行う最も簡単な方法は、それらをtmpfs. /dev/shm通常、これらのいずれかがほとんどの Linux システムにマウントされています。

于 2013-10-06T17:56:27.397 に答える