適切なフラグを使用して共有メモリとセマフォを開きます。
sem = sem_open("/some_name", O_CREAT | O_EXCL, S_IRWXU | S_IRWXG | S_IRWXO, 1);
shm = shm_open("/other_name", O_RDWR | O_CREAT | O_EXCL, S_IRWXU | S_IRWXG | S_IRWXO);
呼び出しは失敗しません(私はそれらをチェックします)。実際、他のプロセスがそれらを作成しfork
、exec
他のプロセスがメモリとセマフォを共有し、適切な同期が行われている1つのプロセス。
ただし、コマンドを使用するとipcs
、共有メモリもセマフォも表示されません。何故ですか?が表示されない場合ipcs
、どこで確認できますか?
私のipcs
出力では、セマフォ配列リストにエントリがなく、共有メモリ内のエントリは、skype、firefox、および(firefoxの)plugin-containerに関連しています。私はそれらをチェックしました
grep shmid /proc/*/maps # observe pid
readlink /proc/pid/exe