我使用适当的标志打开共享内存和信号量:
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
其他进程创建了它们,其他进程共享内存和信号量,并且有适当的同步。但是,当我使用ipcs
命令时,我却看不到共享内存和信号量。为什么呢?如果它们在ipcs
中没有显示,我应该在哪里检查它们呢?在我的
ipcs
输出中,信号量数组列表中没有任何条目,而共享内存中的条目与skype、firefox和firefox的插件容器相关。我已经用以下命令检查过它们:grep shmid /proc/*/maps # observe pid
readlink /proc/pid/exe