Project

General

Profile

Actions

Bug #6603

closed

FileUtils::touchで更新時刻,アクセス時刻がミリ秒単位で記録されない(FreeBSD/amd64)

Added by skoba (Shinji KOBAYASHI) over 12 years ago. Updated over 12 years ago.

Status:
Third Party's Issue
Assignee:
-
Target version:
ruby -v:
ruby 1.9.3p194 (2012-04-20 revision 35410) [amd64-freebsd9]
Backport:
[ruby-dev:45760]

Description

ファイルの作成時刻・更新時刻がミリ秒単位で反映されるかどうかは処理系に依存しているとのことですが,
下記のように,touchを利用してファイルを作成した場合はミリ秒単位で記録されるますが,さらにtouchを
利用して更新時刻を記録しようとすると小数点以下が記録されないようです。

irbでの例です。

irb(main):001:0> require 'fileutils'
=> true
irb(main):002:0> include FileUtils
=> Object
irb(main):003:0> touch 'temp'
=> ["temp"]
irb(main):004:0> File.mtime('temp').to_f
=> 1340024581.3077028
irb(main):005:0> touch 'temp'
=> ["temp"]
irb(main):006:0> File.mtime('temp').to_f
=> 1340024608.0
irb(main):007:0> touch 'temp'
=> ["temp"]
irb(main):008:0> File.mtime('temp').to_f
=> 1340024617.0

mtimeオプションを指定するとミリ秒単位で記録されます。
irb(main):008:0> touch 'temp', mtime: Time.new
=> ["temp"]
irb(main):009:0> File.mtime('temp').to_f
=> 1340030522.9299169

File.atimeも同様にmtimeオプション無しだとミリ秒単位は
記録されません。
fileutils.rbのtouchメソッドの中の下記行で,
時刻の更新をしているようなのですが,tがnilで
ある場合の挙動に問題があるようにも思います。

   File.utime(t, t, path)
Actions

Also available in: Atom PDF

Like0
Like0Like0