鉴于这种代码:以相同名称创建共享内存段 - 返回错误?
char * pathname; // some string
int returnValue = shm_open(pathname, O_CREAT | O_TRUNC | O_RDWR, mode); // create a shared memory object
如果我这样做:注意 - 相同的路径名)
int returnValue2 = shm_open(pathname, O_CREAT | O_TRUNC | O_RDWR, mode); // create a shared memory object
我没有得到任何错误,并且返回值是好的(0
)!
这是否意味着我正在重新创建共享内存段/对象?
如何创建共享内存,并且如果用户尝试使用相同的'pathname'创建,则返回'-1',而不将'pathname'保留在某种结构中像'pathname'-s的链表?谢谢 – ron 2012-07-30 17:37:40
我认为这是在发布的其他答案,我相信你必须做的是添加'O_CREAT'标志。虽然我不是这方面的专家。 – 2012-07-30 17:39:32