仮説として、私は Mac OS X で 1 つの共有リソースまたはサービスを使用するいくつかのアプリケーションを作成しました。私のアプリケーションでは、サービスまたはリソースが、Windows で使用されている名前付きミューテックスと同じ方法で既に作成されているかどうかを確認して、どこでも作成しないようにしたいと考えています。ココアでそれを行う最良の方法は何ですか?
2 に答える
2
共有リソースへのアクセスを制御したいだけの場合、一般的な Unix/OS X はファイルを作成してロックすることです。ファイルの長さは 0 バイトにすることができます。
これを行うシステム レベルの方法はflock
(マニュアル ページのセクション 2) を使用することであり、C レベルの方法は stdio flockfile
(マニュアル ページのセクション 3) を使用することです。フレームワーク レベルの方法はすべて廃止されたと思いますが、間違っています (Apple はファイルシステム操作のサポート方法を変更中のようですが、代替品を提供する前に一部を非推奨にしました)。
注: ファイルのロックは Finder レベルのロックと同じではありません。前者はミューテックスを提供し、後者は変更を防止するためのものです。
于 2013-04-09T05:11:04.767 に答える
1
名前付きミューテックスの最も直接的なアナログは、POSIX セマフォです。sem_open()の man ページから始めます。
于 2013-04-09T05:35:55.360 に答える