3

BSDベースのシステムのfcntl関数のF_NOTIFYフラグに相当するものを知っている人はいますか?このフラグを使用すると、ファイルイベント(たとえば、ファイルを開いた、ファイルを閉じた、ファイルに書き込まれたバイト、ファイルから読み取ったバイト)に関する通知を受け取ることができます。このフラグはLinuxには存在しますが、MACOSX(BSDベースのシステム)には存在しません。

Linuxの人からの引用:

ファイルとディレクトリの変更通知(通知)

int fcntl(int fd、int cmd、... / * arg * /);

F_NOTIFY(long)(Linux 2.4以降)fdによって参照されるディレクトリまたはそれに含まれるファイルのいずれかが変更されたときに通知を提供します。

実際、ファイルイベントを受信できるAPIであれば十分です。

F_NOTIFYの代替品が存在するかどうか誰かが知っていますか?現時点では、kqueue()、kevent()関数を使用するという1つのアイデアしかありません。

4

1 に答える 1

5

正確に同等のものはありません。kqueue()/kevent()イベントフィルター付きEVFILT_VNODEはOSXの代わりになります。

Linuxでも、F_NOTIFYはinotifyに取って代わられていることに注意してください。

于 2011-03-02T18:17:58.860 に答える