From: Takahiro Kambe Date: 2000-08-09T12:16:00+09:00 Subject: [ruby-list:24145] Re: File.rename error message In message on Wed, 9 Aug 2000 12:06:46 +0900, Tanaka Akira wrote: > > 確かにそうですね。ディレクトリは自分自身(.)と親(..)を表す名前を含んで > > いますから、ディレクトリ自身も修正できなければならないわけです。 という私の対象は4BSD系あたりのrename(2)の現実の実装と仕様のことです。 > できなければならないというわけでもないようです。 > The Single UNIX (R) Specification, Version 2 によれば。 「標準」は軽視できないものですが、残念ながら標準化の過程において元々と 良くも悪くも仕様が変わってしまうというか、その内容に幅が出てきてしまう というケースもあります。(snprintf()の戻り値とかもそうだった気がします。) > If the old argument points to the pathname of a directory, write > access permission may be required for the directory named by old, and, > if it exists, the directory named by new. > > may だそうですので、権限を必要としないような実装も許されるようです。 rename()がライブラリだったりするUNIX互換OSも存在しますしね。 > rename の項ははじめて読んだんですが、両方の引数が同じ(hard link された) > ファイルの時の挙動とか、rename 先がディレクトリとして存在してもうまく > いく場合があるとか、知らなかった話が満載でした。 興味深いけど、rubyとは外れてまうかなぁ。 -- 神戸 隆博(かんべ たかひろ) at 仕事場