From: Takahiro Kambe Date: 2000-08-09T09:14:45+09:00 Subject: [ruby-list:24141] Re: File.rename error message In message on Wed, 9 Aug 2000 08:55:58 +0900, Tanaka Akira wrote: > > UNIXの場合、ファイル自身のアクセス権はrename(2)できるかどうかにはまっ > > たく関係ありません。 > > 私も長年そう思っていたのですが、あるときこれには例外があることに気がつ > きました。 > > 異なるディレクトリ間でディレクトリを動かそうとすると、動かされるディレ > クトリに対する書き込み権限が必要になります。 なぜ、それが例外なのでしょうか??? ファイルが属するディレクトリ、属す ることになるディレクトリのアクセス権が問題であって、ファイル自身のアク セス権は無関係です。 > だからどうしたというわけでもありませんが... Windows などが同様の挙動を > 示すかどうかは知りませんが、こーゆー挙動も真似すべきかといわれるとそう > でないような気がします。なんとなく。根拠はありませんが。 これは言語としての実装の方針とも関わる問題で、無意識のうちの根拠とする ところはあるでしょう。 1. 忠実に稼働しているシステムの挙動を反映させる。 Rubyの方でも、それらの違いを意識してコードを書かないといけない。 逆にシステム依存のものも記述できる。 2. 特定の基準(POSIXとか)を前提とした挙動をする様にする。 コードとしての移植性は良くなる。 でも、所詮ないものねだり(シンボリック・リンクとか)はできない。 システム依存の記述がしにくくなる。 というわけで、どちらも一長一短です。でも、どちらかというと実は2.なのか な、と私も思い直しました。Rubyのコードとして、モジュール等で差異を吸収 する方がRuby自身の用途に制限を掛けないであろうと。 -- 神戸 隆博(かんべ たかひろ) at home