-1

を使用してメモリの「1 つの大きな部分」を割り当てる方法を理解しています

int shmget(IPC_PRIVATE, int size, IPC_CREAT | 0666)

しかし、この 1 つのメモリ領域を複数の領域に分割するにはどうすればよいでしょうか? 例えば、

[          heap           ]
[region1][region2][region3]

次に、使用しなければならないフォークされた各プロセスを信じます

int shmget(key_t shmid, 0, 0666)

私が推測する地域にアクセスするには?..

また、メモリ割り当てに関連する多くのオンライン サイトで「オフセット」という用語を目にしますが、これはどういう意味ですか?

4

1 に答える 1

0

shmget最新の Linux システムでは、 & Co を使用する理由はあまりありません。代わりに ,shm_openと一緒に使用してください。mmapインターフェイスははるかに使いやすくなっています。

あなたが自発的にマップを分割したかったのか、それともあなたが読んだことの結果に過ぎなかったのか、私にはわかりませんでしたshmget。ただし、mmap必要に応じて、地域の一部を簡単にマッピングできます。

于 2012-04-13T16:32:32.573 に答える