![名前付きセマフォはどこに保存されますか? [閉鎖]](https://linux33.com/image/87404/%E5%90%8D%E5%89%8D%E4%BB%98%E3%81%8D%E3%82%BB%E3%83%9E%E3%83%95%E3%82%A9%E3%81%AF%E3%81%A9%E3%81%93%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
名前付きセマフォ(使用済みsemaphore.h
)は形式の名前で識別されます/somename
。つまり、最大NAME_MAX-4(つまり251)文字で構成される文字列で、最初の文字はスラッシュとそれに続く1つ以上の文字で構成されます。これらの文字のどれもスラッシュではありません。
名前はファイルシステムのパス名と一致するためです。このセマフォはどこにありますか?ipcs
System V セマフォで使用されます。 POSIXセマフォを見つける方法は?
答え1
~から人7 SEM_概要:
ファイルシステムを介して名前付きセマフォにアクセスする
Linuxでは、名前付きセマフォは通常、次の場所にインストールされている仮想ファイルシステムに作成されます。
/dev/shm
、名前の形式はですsem.somename
。 (これがセマフォ名がNAME_MAX文字ではなくNAME_MAX-4に制限される理由です。)
答え2
/proc/<pid>/maps/
特定のPIDを持つプロセスのメモリマップが表示されます。 (関連質問:https://stackoverflow.com/questions/1401359/understanding-linux-proc-id-maps)
出力では、POSIXセマフォは/dev/shm/
。