SlideShare una empresa de Scribd logo
1 de 1
Descargar para leer sin conexión
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)との比較や、サンプルプログラムでの解説など。

Más contenido relacionado

Destacado

InputMethodKit超入門
InputMethodKit超入門InputMethodKit超入門
InputMethodKit超入門Wataru Kimura
 
Build 番号の自動更新スクリプトについて #cocoa_kansai
Build 番号の自動更新スクリプトについて #cocoa_kansaiBuild 番号の自動更新スクリプトについて #cocoa_kansai
Build 番号の自動更新スクリプトについて #cocoa_kansaiTomohiro Kumagai
 
Copyrights mjohnson1
Copyrights mjohnson1Copyrights mjohnson1
Copyrights mjohnson1melvinjo
 
Reporte del Congreso de Guatemala
Reporte del Congreso de GuatemalaReporte del Congreso de Guatemala
Reporte del Congreso de Guatemalameifer555
 
Socialización convocatoria csha vf
Socialización convocatoria csha vfSocialización convocatoria csha vf
Socialización convocatoria csha vfBraulio 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 ellajhonatan12353
 
Draft 3 part 5 b
Draft 3 part 5 bDraft 3 part 5 b
Draft 3 part 5 balexa067
 
Bloque de cierre jisell zambrano
Bloque de cierre jisell zambranoBloque de cierre jisell zambrano
Bloque de cierre jisell zambranojisellzg
 
Apresentacao valedocerrado
Apresentacao valedocerradoApresentacao valedocerrado
Apresentacao valedocerradowesleycesar
 

Destacado (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
 

Más de Wataru Kimura

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

Más de 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で入力プログラムをつくろう
 

Último

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 

Último (10)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

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)との比較や、サンプルプログラムでの解説など。