3

Windowsなどでは、ファイルを見つけるためのトリックを使用して、現在使用されています(具体的に記述されています)。

私は書き込み用にファイルを開くために使用しますが、失敗した場合は、別のプロセスがファイルへのアクセスでビジー状態になっている可能性があります。

残念ながら、これらのトリック(書き込み専用のロック付きのC OPENを使用)は私のMacでは機能しません。ターミナルでのカールがまだ書き込みをしている間、-fileBusy()チェックは失敗します。

F_GETLKを使用してfdをfcnt呼び出ししても、ロックは明らかになりません。

ファイルが別のプロセスで使用されているかどうかを検出する機会はありますか?

PS> fseventsのリッスンは、他のアプリ/プロセスによって作成された後に私のアプリが起動するため実行できません。

4

2 に答える 2

5

Appleは、以下のリンクで説明されているソリューションが有効なソリューションであり、プライベートAPIとは見なされないことを電子メールで確認しました。

詳細: http: //lists.apple.com/archives/cocoa-dev/2010/May/msg01455.html

于 2012-11-06T14:53:15.660 に答える
1

NSTaskを使用して次のシェルコマンドを実行してみることができます。

lsof -Fc path/to/thefile

これにより、ファイルが開いているプロセスIDとプロセス名がわかります。

于 2011-12-27T17:31:45.590 に答える