coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [coreutils] [PATCH 1/2] stat: support printing birthtime


From: Jim Meyering
Subject: Re: [coreutils] [PATCH 1/2] stat: support printing birthtime
Date: Fri, 01 Oct 2010 17:22:38 +0200

Eric Blake wrote:

> On 10/01/2010 09:11 AM, Jim Meyering wrote:
>> Eric Blake wrote:
>> ...
>>> +# Whether birthtime is supported or not, it better not change even when
>>> +# [acm]time are modified.  :)
>>> +touch a || fail=1
>>> +btime=$(stat --format %W a) || fail=1
>>> +atime=$(stat --format %X a) || fail=1
>>> +mtime=$(stat --format %Y a) || fail=1
>>> +ctime=$(stat --format %Z a) || fail=1
>>> +
>>> +case $(stat --format %x a) in
>>> +  *.000000000*) sleep 2;; # worst case file system is FAT
>>> +  *) # FIXME: sleep .1 would be sufficient if %X showed nanoseconds
>>> + sleep 1;; # should be adequate for any system with subsecond resolution
>>> +esac
>>
>> We try hard to avoid sleeping in the common case.
>> Any reason not to do what the FIXME suggests?
>>
>>      case $(stat --format %X a) in
>>        *.000000000) sleep 1;;
>
> You need two seconds for FAT.

Yes.  FAT is already handled.
The case statement I suggested was intended to replace the "sleep 1" in
the default case (handling the FIXME) above, not to replace the existing
case statement.

>>        *) sleep .1;;
>
> Done in patch 2/2 (see my other email) - you HAVE to sleep longer than
> the minimum resolution of %X...
>
>>      esac
>>
>>> +touch a || fail=1
>>> +test "x$btime" = x$(stat --format %W a) || fail=1
>>> +test "x$atime" != x$(stat --format %X a) || fail=1
>
> before you can guarantee that %X changed.  But if %X doesn't print
> subsecond details (as in patch 2/2), ... :)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]