![将 IPC_CREAT 与已创建的共享内存段一起使用](https://linux22.com/image/218494/%E5%B0%86%20IPC_CREAT%20%E4%B8%8E%E5%B7%B2%E5%88%9B%E5%BB%BA%E7%9A%84%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98%E6%AE%B5%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8.png)
我试图弄清楚如果我将 IPC_CREAT
标志与 一起使用会发生什么shmget()
。我使用了另一个进程中已创建的共享内存段的密钥。当我这样做时,调用进程实际上已经与旧进程共享了这个内存段(当然我已经使用附加了这个内存段shmat()
)。那么我是否可以得出这样的结论:如果我使用 IPC_CREAT
已创建的共享内存段,效果是该内存将与调用进程共享?
答案1
是的,就是这个想法。你IPC_CREAT
习惯于允许创造,而非强迫。要强制创建(如果密钥已存在则失败)IPC_CREAT | IPC_EXCL
,.