POSIX打开一个或创建IPC对象的逻辑如下图所示:
当一个程序打开一个POSIX的IPC对象时候,可以通过以下方法
得知返回的是一个新对象还是引用一个已有的对象:
首先同时指定O_CREATE和O_EXCL标志,如果成功返回,那么
已经创建了一个新对象。然而如果以EEXIST错误失败返回,那么对象
已经存在,程序于是得再次调用打开函数,不过不再同时
指定O_CREATE和O_EXCL标志。第二次调用应该成功,但是
以ENOENT错误失败返回的机会仍然存在(尽管是小概率事件),它
表明在这两次调用之间,另外线程或者进程已经将该对象删除了。