我希望用tcl/tk中的inotify来监控一个文件。当文件内容被更改时,应执行"say"过程。我的代码只对一次确切的更改有效。如果我再次打开文件(我使用kwrite打开它)并更改内容,则不会执行此过程。 "watch info"向我展示文件仍然添加到实例中。 "watch read"显示标志设置为i,这对我来说意味着该文件被实例忽略了。但我不知道为什么会忽略该文件,我没有删除该文件或做其他任何事情。你能回答一下,为什么该文件被忽略吗?
以下是代码发射部分:
以下是代码发射部分:
package require inotify
1.3
proc say {fd} {
puts "say hello"
}
if {[catch {set fd [inotify create "watch" "say"]} errfd]} {
puts "$errfd"
exit
}
puts $fd
7
if {[catch {watch add /home/server/Zwischenablage/pitt_an/pitt_an_dashboard.txt C} errwatch]} {
puts "$errwatch"
exit
}
watch info
/home/server/Zwischenablage/pitt_an/pitt_an_dashboard.txt 1 C
(这里我首先编辑了文件)
说你好
watch info
/home/server/Zwischenablage/pitt_an/pitt_an_dashboard.txt 1 C/home/server/Zwischenablage/pitt_an/pitt_an_dashboard.txt 1 C
watch read
{watchid 1 flags i cookie 0 filename {}}