http://fixunix.com/kernel/331080-hi-res-mtime-userspace-interface.html ?
2009/1/7 Andrew Shitov <[email protected]>: > Мне потребовалась функция, сообщающая, был ли изменен файл, причем > делающая это максимально быстро и нересурсоемко. > > Самый простой способ (проверка времени изменения) работает в > большинстве случаев, но не всегда. Пример: > > `cp file1.txt temp.txt`; > do_something('temp.txt'); > > `rm temp.txt ; cp file2.txt temp.txt`; > do_something('temp.txt'); > > Если do_something() работает намного меньше секунды, то с большой > вероятностью дата изменения (создания) файла temp.txt окажется одной и > той же при каждом вызове, и проверка mtime не поможет. > > Сейчас я дополнительно проверяю и размер файла: > > return > $cache{$path}[1] != (stat $path)[9] || # mtime > $cache{$path}[2] != (stat _)[7]; # size > > Но если файлы случайно окажутся одинакового размера, и это не поможет. > > > Можно ли как-то еще отследить, что между двумя моими чтениями в файл > кто-то что-либо записывал? Варианты с md5 или diff не подходят, потому > что полностью читать файл с диска ну совсем не хочется. > > -- > Andrew Shitov > ______________________________________________________________________ > [email protected] | http://shitov.ru > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org > -- Best regards, Ruslan. -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
