Forum: Ruby-dev [ruby-trunk - Feature #9647] File::Stat#birthtimeの追加

02da662c083396641da96c1d32fc86ed?d=identicon&s=25 unknown (Guest)
on 2014-03-17 20:01
(Received via mailing list)
Issue #9647 has been updated by Motohiro KOSAKI.


Linuxの場合、媒体にはbirthtimeが記録されていて、syscallの追加が自転車置き場の議論で進まないという感じなのでctimeが帰ってくるのはうれしくないなあ。将来的に混乱が予想されるので。

いまでもrootならdebugfs使って作成日とれます。
この辺参照してください(一番下)
http://stackoverflow.com/questions/5929419/how-to-...

こっから先は雑談なんだけど、なにが自転車置き場の議論かというと、birthtime追加 → やったSambaの実装が楽になるよ! →
だがちょっと待って欲しい、Windowsはctimeユーザが変更できる、それが出来ないならSambaで使えない → それもう
birthtimeじゃねーだろアホか → えーい、usecaseで揉めるような機能なら入れない!!
という非常にばかばかしい議論をしたことがあるのだ。



----------------------------------------
Feature #9647: File::Stat#birthtimeの追加
https://bugs.ruby-lang.org/issues/9647#change-45844

* Author: Yui NARUSE
* Status: Assigned
* Priority: Normal
* Assignee: Yukihiro Matsumoto
* Category: core
* Target version:
----------------------------------------
File::Stat#birthtimeを追加しませんか。

以下の様なシステムの stat(2) には st_birthtimespec があり、
(ctime = change time ではなく) ファイルを作成した日時を得ることができます。
http://netbsd.gw.com/cgi-bin/man-cgi?stat+2+NetBSD-current
http://www.freebsd.org/cgi/man.cgi?query=stat&sekt...
https://developer.apple.com/library/mac/documentat...

また、Windowsはbirthtimeがあるがctimeがないという環境ですので、birthtimeはctimeを返します。
http://msdn.microsoft.com/ja-jp/library/ms350241(v...

今回のパッチではLinuxやOpenBSDなど、struct statにbirthtimeがない環境では、
Windows同様ctimeを返すようにしています。
(が、意味が違うからWindows以外ではNotImpErrorの方がいいかも)

https://github.com/nurse/ruby/compare/ruby:trunk...birthtime
This topic is locked and can not be replied to.