1

仮説として、私は Mac OS X で 1 つの共有リソースまたはサービスを使用するいくつかのアプリケーションを作成しました。私のアプリケーションでは、サービスまたはリソースが、Windows で使用されている名前付きミューテックスと同じ方法で既に作成されているかどうかを確認して、どこでも作成しないようにしたいと考えています。ココアでそれを行う最良の方法は何ですか?

4

2 に答える 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 に答える