http://www.perlmonks.org?node_id=1066435


in reply to Re: Reading from file- not change atime
in thread Reading from file- not change atime

Maybe inject a Trojan/Backdoor into a file, and don't want anyone to know? Or some other nefarious reason? ;)

--Chris

Yes. What say about me, is true.
  • Comment on Re^2: Reading from file- not change atime

Replies are listed 'Best First'.
Re^3: Reading from file- not change atime
by Eliya (Vicar) on Dec 10, 2013 at 16:44 UTC
    ... and don't want anyone to know

    Note that there's also ctime, which on most current Unix systems has the semantics "inode change time", and restoring atime is considered an inode change operation. In other words, even though atime could be restored, those who "really want to know" would check ctime in this case...

    #!/usr/bin/perl -w use strict; sub show_times { my ($f, $note) = @_; printf "atime=%d, mtime=%d, ctime=%d - %s\n", (stat($f))[8..10], $ +note; } my $file = shift or die $!; # save atime my ($atime, $mtime) = (stat($file))[8,9]; show_times($file, "initially"); # read from file { open my $fh, '<', $file or die $!; <$fh>; } show_times($file, "after read"); # restore atime utime($atime, $mtime, $file) or die "utime: $!"; show_times($file, "after atime restored");
    $ touch somefile && sleep 2 && ./fix_accesstime.pl somefile atime=1386693000, mtime=1386693000, ctime=1386693000 - initially atime=1386693002, mtime=1386693000, ctime=1386693000 - after read atime=1386693000, mtime=1386693000, ctime=1386693002 - after atime res +tored

    Note that even though atime is restored, ctime is still being updated.