是否有一种方法可以指示Mac OS X上跨进程所做的任何事情,就像Windows中的命名互斥一样



假设我在Mac OS X上创建了几个使用共享资源或服务的应用程序。在我的应用程序中,我想检查服务或资源是否已经以与Windows上使用的命名互斥锁相同的方式创建,以便不在任何地方创建它。在Cocoa中最好的方法是什么?

如果你只是想控制对共享资源的访问,一个常见的Unix/OS X可能是创建&锁定文件-文件长度可以为0字节

系统级的方法是使用flock(手册页第2节),c级的方法是使用studio flockfile(手册页第3节),我认为所有框架级的方法都已被弃用,但我可能错了(苹果似乎正在改变文件系统操作的支持方式,但在提供替代品之前已经弃用了一些)。

注意:文件锁定与finder级锁定不同——前者给你一个互斥锁,后者是为了防止修改。

命名互斥锁最直接的类比是POSIX信号量。从sem_open()的手册页开始。

相关内容

最新更新