linux – Perl inotify2为每个文件修改触发两次
发布时间:2020-12-14 01:18:58 所属栏目:Linux 来源:网络整理
导读:我正在编写一个监视文件以进行更改的Perl脚本. #!/usr/bin/perluse strict;use Linux::Inotify2;my $inotify = new Linux::Inotify2 or die $!;my $filename = "/tmp/foo";my $counter = 0;$inotify-watch ( $filename,IN_MODIFY,sub { ++$counter; print "c
我正在编写一个监视文件以进行更改的Perl脚本.
#!/usr/bin/perl use strict; use Linux::Inotify2; my $inotify = new Linux::Inotify2 or die $!; my $filename = "/tmp/foo"; my $counter = 0; $inotify->watch ( $filename,IN_MODIFY,sub { ++$counter; print "changed: $countern"; } ) or die $!; 1 while $inotify->poll; 如果我像这样测试它,每次/ tmp / foo改变时,这个处理程序被调用两次(递增$counter两次): echo abc > /tmp/foo 为什么? 解决方法
使用>>正如@Lajos Veres建议的那样,或观看CLOSE_WRITE事件(对于Linux :: Inotify2模块来说是
IN_CLOSE_WRITE),
echo > /tmp/foo inotifywait -m /tmp/foo Setting up watches. Watches established. /tmp/foo MODIFY /tmp/foo OPEN /tmp/foo MODIFY /tmp/foo CLOSE_WRITE,CLOSE (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |