Haskellでファイルの変更を監視

別プログラムがファイルにデータの書き出しを行うのを監視する必要があったため.

hinotifyというinotify APIのHaskell向けバインディングを使います.

非Linux環境?…何もわからない.

イベントリスナーは永続ですがメインスレッドが終了してしまうと何もかも終わるためgetLineなどの適切な関数で実行を待つ必要があります.

処理を実行中にまたファイルの変更があったらどうなるのか,ファイルの処理中にまたファイルの変更があったことを想定して気になったのでthreadDelayして調べてみたのですが,ファイルの処理中にファイルが変更されてもちゃんと2回イベントリスナーは実行されるみたいですね.

inotifyはinotify-toolsを使ってshellを抜ける形式で

のようにしか扱ったことが無かったため,2重変更で2回呼び出されるのか知りませんでした.

このエントリーをはてなブックマークに追加 fb-like g-plusone pocket