UKKQueueを利用してkqueue(2)をつかう
Click here to load reader
-
Upload
wataru-kimura -
Category
Technology
-
view
491 -
download
0
description
Transcript of UKKQueueを利用してkqueue(2)をつかう
UKKQueueを利用してkqueue(2)をつかうCocoa勉強会 2004.10.30(土) 木村 渡
kqueue/keventはPantherから導入された(FreeBSDでは4.1-RELEASEから)仕組みで、ファイル記述子(ファイル、ソケット、デバイスとか)の入出力などを監視することができる。
UKKQueueは、Uli Kusterer氏が作成したkqueue/keventのCocoaラッパーで、ファイルの監視に特化したもの。UKKQueueは次のURLで公開されている。
http://www.zathras.de/angelweb/sourcecode.htm#UKKQueue
UKKQueueの使いかたUKKQueueのインスタンスを作成し、以下のメソッド利用して監視対象の登録/解除を行う。
-[UKKQueue addPathToQueue:]-[UKKQueue addPathToQueue:notifyingAbout:]監視対象ファイルパスを指定。後者のメソッドでは、監視したいイベントを指定できる(ファイルへの書き込み、ファイルの削除など)。
-[UKKQueue removePathFromQueue:]監視をやめる。
監視対象としたファイルに書き込みなどが行われたとき、-[NSWorkspace notificationCenter]を通して通知がされる。なので、イベントを知りたいオブジェクトは-[NSWorkspace notificationCenter]にオブザーバとして登録しておく。
サンプルについてウィンドウに表示したNSTextViewの内容を一時ファイルに保存し、他のアプリケーションで開く。外部アプリケーションでファイルを保存すると、その内容をNSTextViewに読み込む。
kqueueの弱点�����*04%'!(#86$&
サンプルでエディタをTextEditにすると、思うように動作しない。理由は不明。
参考情報��������������
http://developer.apple.com/samplecode/FileNotification/FileNotification.htmlAppleによるkqueue/keventを利用してフォルダを監視するサンプル。論文もついてる。
�~������)7"!~����� ����� ������:9,12/+�-35.�poll(2)/select(2)との比較や、サンプルプログラムでの解説など。