2014-02-07 146 views
0

OS水平,如何才能做到知道的東西已經改變(如文件變化)系統如何監聽文件更改?

如:
在節點上,我們可以監視一個文件,並執行一些操作,而它的變化

fs.watch(file_path,function(){ 
    //do something while the file's changed; 
}); 

有人可以給我一個簡單的直覺/想法/關鍵字如何它真的工作

我可以上來的是,雖然我在vim打:w,它以某種方式調用某些系統* fake_save_file *函數,並insid e * fake_save_file *函數,它將一些事件發送到別的地方

+0

Linux有[inotify](http://linux.die.net/man/7/inotify)可用於實現。 –

回答

0

pyinotify可能是你想要的。請檢查它。

2

您可能知道內核將文件系統中的文件編入索引爲文件描述符。通過監聽這些文件描述符的變化來實現文件觀看。在linux inotify這樣做。當您打開,讀取,寫入/修改或移動文件時,內核會根據文件描述符發出操作。 Inotify通過跟蹤這些操作並向您顯示它們來擴展文件系統。

你給的例子有些不正確。 fake_save_file由文本編輯器vim創建,用於存儲所做的臨時更改,除非用戶實際保存它。當您用:w保存時,編輯器會用fake_save_file的副本替換您的actual_save_file。

作爲用戶,您將會看到您的actual_save_file。當您在vim中輸入:w時,這會發生變化。當vim修改其內容時,您會收到通知。