3

2 つのプロセス間でメモリを共有したい。私が知っている 1 つの方法はmmap、共有ファイルを使用することです。ただし、共有ファイルを使用したくありません。メモリ内に匿名のマッピングが必要です。どうやってやるの。

4

5 に答える 5

3

shm_openはあなたの友達です。shm_unlinkを使用して、共有領域のマップを解除できます。

于 2012-07-20T16:25:36.520 に答える
3

共有メモリはあなたが望むものです:http://en.wikipedia.org/wiki/Shared_memory

Linuxを使用しているので、ここに移動します:http ://www.kernel.org/doc/man-pages/online/pages/man7/shm_overview.7.html

于 2012-07-20T16:21:58.933 に答える
2

mmap されたファイルは、ほとんどの Linux システムで tmpfs (つまり、メモリーベースのファイルシステム) としてマウントされているディレクトリ /dev/shm に置くことができます。

または、独自の tmpfs をディレクトリ ツリーの別の場所にマウントすることもできます (他のオプションが必要な場合)。

于 2012-07-20T16:24:22.847 に答える
0

shm_getは良い出発点ですが、メモリが破損しないように、相互排除のためのセマフォについても読む必要があります。

于 2012-07-20T16:26:39.563 に答える
0

NUMA システムでは、コアが別々のノードにある場合、コアから等距離にある NUMA ノードを選択しない限り、異なる速度でメモリにアクセスすることに注意してください。

于 2012-07-20T16:43:11.243 に答える