SlideShare a Scribd company logo
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

InputMethodKit超入門
InputMethodKit超入門InputMethodKit超入門
InputMethodKit超入門
Wataru Kimura
 
Build 番号の自動更新スクリプトについて #cocoa_kansai
Build 番号の自動更新スクリプトについて #cocoa_kansaiBuild 番号の自動更新スクリプトについて #cocoa_kansai
Build 番号の自動更新スクリプトについて #cocoa_kansai
Tomohiro Kumagai
 
Copyrights mjohnson1
Copyrights mjohnson1Copyrights mjohnson1
Copyrights mjohnson1
melvinjo
 
Recapitulación 31
Recapitulación 31Recapitulación 31
Recapitulación 31
jhonatangomez123
 
Keyhole Garden - UK -
Keyhole Garden - UK -Keyhole Garden - UK -
Keyhole Garden - UK -
Salah Benyoussef
 
Reporte del Congreso de Guatemala
Reporte del Congreso de GuatemalaReporte del Congreso de Guatemala
Reporte del Congreso de Guatemala
meifer555
 
Socialización convocatoria csha vf
Socialización convocatoria csha vfSocialización convocatoria csha vf
Socialización convocatoria csha vf
Braulio Angulo
 
Recursos didàctics sergi joseroma
Recursos didàctics sergi joseromaRecursos didàctics sergi joseroma
Recursos didàctics sergi joseroma
Romà Català Sabaté
 
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
 
Biologia
BiologiaBiologia
Biologia
Dante Flores
 
Draft 3 part 5 b
Draft 3 part 5 bDraft 3 part 5 b
Draft 3 part 5 b
alexa067
 
Tabela D.1
Tabela D.1Tabela D.1
Tabela D.1
guestc5adc9
 
Bloque de cierre jisell zambrano
Bloque de cierre jisell zambranoBloque de cierre jisell zambrano
Bloque de cierre jisell zambrano
jisellzg
 
Guantee paradise for him
Guantee paradise for himGuantee paradise for him
Guantee paradise for him
FAHIM AKTHAR ULLAL
 
Apresentacao valedocerrado
Apresentacao valedocerradoApresentacao valedocerrado
Apresentacao valedocerrado
wesleycesar
 
Fotos bingo 2012
Fotos bingo 2012Fotos bingo 2012
Fotos bingo 2012
santamariadelbosque
 

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

new Objctive-C literal syntax
new Objctive-C literal syntaxnew Objctive-C literal syntax
new Objctive-C literal syntax
Wataru Kimura
 
Three20 lint
Three20 lintThree20 lint
Three20 lint
Wataru Kimura
 
Quickcursorに見る、アプリケーション間通信
Quickcursorに見る、アプリケーション間通信Quickcursorに見る、アプリケーション間通信
Quickcursorに見る、アプリケーション間通信
Wataru Kimura
 
PSMTabBarControl
PSMTabBarControlPSMTabBarControl
PSMTabBarControl
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のTTURLRequest
Wataru Kimura
 
InputMethodKitで入力プログラムをつくろう
InputMethodKitで入力プログラムをつくろうInputMethodKitで入力プログラムをつくろう
InputMethodKitで入力プログラムをつくろう
Wataru Kimura
 

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

ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 

Recently uploaded (12)

ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 

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