SlideShare a Scribd company logo
1 of 1
Download to read offline
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の弱点

      サンプルでエディタをTextEditにすると、思うように動作しない。理由は不明。



参考情報

      http://developer.apple.com/samplecode/FileNotification/FileNotification.html
      Appleによるkqueue/keventを利用してフォルダを監視するサンプル。論文もついてる。

     ∼               ∼
      poll(2)/select(2)との比較や、サンプルプログラムでの解説など。

More Related Content

Viewers also liked

Copyrights mjohnson1
Copyrights mjohnson1Copyrights mjohnson1
Copyrights mjohnson1
melvinjo
 
Socialización convocatoria csha vf
Socialización convocatoria csha vfSocialización convocatoria csha vf
Socialización convocatoria csha vf
Braulio Angulo
 
Como procesar agua de mar para el consumo de ella
Como procesar agua de mar para el consumo de ellaComo procesar agua de mar para el consumo de ella
Como procesar agua de mar para el consumo de ella
jhonatan12353
 
Draft 3 part 5 b
Draft 3 part 5 bDraft 3 part 5 b
Draft 3 part 5 b
alexa067
 
Apresentacao valedocerrado
Apresentacao valedocerradoApresentacao valedocerrado
Apresentacao valedocerrado
wesleycesar
 

Viewers also liked (18)

InputMethodKit超入門
InputMethodKit超入門InputMethodKit超入門
InputMethodKit超入門
 
Build 番号の自動更新スクリプトについて #cocoa_kansai
Build 番号の自動更新スクリプトについて #cocoa_kansaiBuild 番号の自動更新スクリプトについて #cocoa_kansai
Build 番号の自動更新スクリプトについて #cocoa_kansai
 
Copyrights mjohnson1
Copyrights mjohnson1Copyrights mjohnson1
Copyrights mjohnson1
 
Recapitulación 31
Recapitulación 31Recapitulación 31
Recapitulación 31
 
Keyhole Garden - UK -
Keyhole Garden - UK -Keyhole Garden - UK -
Keyhole Garden - UK -
 
Reporte del Congreso de Guatemala
Reporte del Congreso de GuatemalaReporte del Congreso de Guatemala
Reporte del Congreso de Guatemala
 
Socialización convocatoria csha vf
Socialización convocatoria csha vfSocialización convocatoria csha vf
Socialización convocatoria csha vf
 
Ref005350
Ref005350Ref005350
Ref005350
 
Recursos didàctics sergi joseroma
Recursos didàctics sergi joseromaRecursos didàctics sergi joseroma
Recursos didàctics sergi joseroma
 
Como procesar agua de mar para el consumo de ella
Como procesar agua de mar para el consumo de ellaComo procesar agua de mar para el consumo de ella
Como procesar agua de mar para el consumo de ella
 
Biologia
BiologiaBiologia
Biologia
 
Draft 3 part 5 b
Draft 3 part 5 bDraft 3 part 5 b
Draft 3 part 5 b
 
Tabela D.1
Tabela D.1Tabela D.1
Tabela D.1
 
Bloque de cierre jisell zambrano
Bloque de cierre jisell zambranoBloque de cierre jisell zambrano
Bloque de cierre jisell zambrano
 
Guantee paradise for him
Guantee paradise for himGuantee paradise for him
Guantee paradise for him
 
Tv31mars
Tv31marsTv31mars
Tv31mars
 
Apresentacao valedocerrado
Apresentacao valedocerradoApresentacao valedocerrado
Apresentacao valedocerrado
 
Fotos bingo 2012
Fotos bingo 2012Fotos bingo 2012
Fotos bingo 2012
 

More from Wataru Kimura (11)

new Objctive-C literal syntax
new Objctive-C literal syntaxnew Objctive-C literal syntax
new Objctive-C literal syntax
 
Three20 lint
Three20 lintThree20 lint
Three20 lint
 
Macos services
Macos servicesMacos services
Macos services
 
Quickcursorに見る、アプリケーション間通信
Quickcursorに見る、アプリケーション間通信Quickcursorに見る、アプリケーション間通信
Quickcursorに見る、アプリケーション間通信
 
PSMTabBarControl
PSMTabBarControlPSMTabBarControl
PSMTabBarControl
 
Precipitateに見る、外部リソースのSpotlight化
Precipitateに見る、外部リソースのSpotlight化Precipitateに見る、外部リソースのSpotlight化
Precipitateに見る、外部リソースのSpotlight化
 
Hotkeyslib3 Cocoaでホットキー
Hotkeyslib3 CocoaでホットキーHotkeyslib3 Cocoaでホットキー
Hotkeyslib3 Cocoaでホットキー
 
ClangでObjective-Cを静的解析
ClangでObjective-Cを静的解析ClangでObjective-Cを静的解析
ClangでObjective-Cを静的解析
 
SIMBLでCocoaアプリをパワーアップ
SIMBLでCocoaアプリをパワーアップSIMBLでCocoaアプリをパワーアップ
SIMBLでCocoaアプリをパワーアップ
 
Three20のTTURLRequest
Three20のTTURLRequestThree20のTTURLRequest
Three20のTTURLRequest
 
InputMethodKitで入力プログラムをつくろう
InputMethodKitで入力プログラムをつくろうInputMethodKitで入力プログラムをつくろう
InputMethodKitで入力プログラムをつくろう
 

Recently uploaded

研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
atsushi061452
 

Recently uploaded (12)

研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 

UKKQueueを利用してkqueue(2)をつかう

  • 1. 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の弱点 サンプルでエディタをTextEditにすると、思うように動作しない。理由は不明。 参考情報 http://developer.apple.com/samplecode/FileNotification/FileNotification.html Appleによるkqueue/keventを利用してフォルダを監視するサンプル。論文もついてる。 ∼ ∼ poll(2)/select(2)との比較や、サンプルプログラムでの解説など。