原帖由 "windflowers1976" 发表:
OYCLBOOL OYCL_CShm::GetShm(key_t tKey, int iSize, int iMode)
{
m_bCreate = OYCLFALSE;
if ((m_iShmId = shmget(m_tShmKey, m_iShmSize, IPC_CREAT | IPC_EXCL | iMode)) < 0) //try to create
{
i..........
不能创建已创建的SHM
原帖由 "飞灰橙" 发表:
两边都加上IPC_CREAT是没有问题的,
而且最好两边都加上,否则的话需要控制好两边的shmget的调用次序。
之所以上面的代码不能创建已经创建的SHM,是因为加上了IPC_EXCL的缘故
原帖由 "windflowers1976" 发表:
我的意思是请参考我贴出的代码,两边都调用上述的SHMGET,这样就没有问题了,上述代码也是久经考验的,呵呵.
意义我解释一下,就是首先尝试创建共享内存,设置IPC_EXCL标志,如果?.........
原帖由 "windflowers1976" 发表:
恢?滥愕墓鄣悴皇遣煌?釸 S 老前辈的话.或许是我的错.
不过,你的说法我也去试验下.
原帖由 "windflowers1976" 发表:
补充,呵呵,如果不是WELLKNOWN SIZE那你怎么知道该用1还是1024字节?
所以,照规范做有可能是更好的选择.
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |