C言語 - POSIX 共有メモリについて


 クラウディア


1. 概要
2. POSIX 共有メモリに関する覚書

1. 概要

 「UNIX」系のアプリケーションで、共有メモリを使用する際、長らく「System V」系の共有メモリ操作関数。

shmat
shmdt
 を使用してきたのですが、機会があって、初めて「POSIX」系の共有メモリ操作関数

shm_open
shm_unlink
 を使用することとなりました。(今更と言わないで・・・)  で、「System V」系の共有メモリ操作であれば「ipcs」コマンドで使用状況を見ることができるし。  まんがいちプロセスがこけても「ipcrm」コマンドで消せるということで安心していたのですが・・・。  「POSIX」系の共有メモリ操作の場合、どうやって外部から見るのだろうと悩んでいたら、下記のサイトを読んで合点がいきました
IDLメモ メモリー管理

2. POSIX 共有メモリに関する覚書

 恥ずかしながら、初めて知りました。  「shm_open」で確保したメモリは、基本的に。
/dev/shm
 に、ファイルとして取られるのですね。  最初にメモリを確保した時点では、0 バイトのファイルになっていて「ftruncate」でサイズを拡張した時点でそのサイズに変更されることがわかりました。  「/dev/shm」は、「Sticky」ビットが立っているので、基本は作成したユーザでしか消せないようになっています。  共有メモリのネーミングで「スラッシュ (/) から始まるものにし、途中にはスラッシュを含まないように すべきである。」というルールも。  物理的には、「/dev/shm」の下のファイルであるということがわかれば、きわめて納得できるものでした。

audiobook.jp
AbemaTV 無料体験
ネットオークションの相場、統計、価格比較といえばオークファン
葬送のフリーレン Prime Video
U-NEXT
それがだいじWi-Fi
JETBOY
EaseUS
【usus ウズウズ】
TikTok Shop 【リピート用プログラム】
薬屋の独り言
ベルリッツ
earthcar(アースカー)
ハイスピードプラン
5G CONNECT
Amazonギフトカード
損保との違い
健康サポート特集
サウンドハウス
EMEET 1
アフィリエイトのアクセストレード