shm_open()
mmap()
ftruncate()
は、この時点ではfork()
によって生成されたすべてのプロセスを持っていることを確認する
ある同じアドレスの共有セグメントしかし、私はRAMを常にビジー状態に保ちたいとは思っていませんが、動的にサイズを変更します(サイズ0〜ビッグサイズlength
)。ben mmapされた共有メモリオブジェクトをftruncateするのは安全ですか?意志で事前に定義された大きな<code>length</code></li> <li><code>fork()</code>(数回)と
これは動作しますか? UBはありますか?
これは私が前提にしていますが、 'munmap'トリガーが' SIGBUS'を引き起こす恐れのあるページに書き込むことができますか? –
これは私の質問に答えるので、これを受け入れたものとしてマークします。しかし、Damonの方法は、管理が容易です(私は 'mmap'ed範囲の真中でページをアンロードできます)。 –
@nneonneo私はこれがかなり正しいとは思わない。私はマッピングを更新するために 'ftruncate'の後に' mremap'をする必要があると思います。それでも、 'mremap'が' ENOMEM'で失敗するのを防ぐために、もともと大きなサイズを割り当てるべきです。 – jleahy