2

shm_openfd「共有メモリ オブジェクト」に関連付けられた を返します。通常、このオブジェクトはmmapとしてアクセスするために ( を使用して)仮想メモリにマップされますmemory-mapped file

ただし、 (通常のファイルであるかのように)共有メモリ オブジェクトfdアクセスしても安全ですか? そして「安全」とは、POSIXによって明確に定義された動作が保証されていることを意味しますか?

私が尋ねている理由は、固定バイト数を書き込むための (メモリ アドレスではなく)のみを受け入れるサードパーティ インターフェイスを使用しているからです。fd

4

1 に答える 1

4

残念だけど違う。 POSIX 言います

fildes共有メモリ オブジェクトを参照する 場合、write()関数の結果は規定されていません。

.. についても同じですread()

ただし、共有メモリ オブジェクトがファイル システムに基づくファイルである Linux では機能しtmpfsます。

于 2013-05-12T00:42:39.630 に答える