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

Re: KDE2



斉藤です。

大阪大学の齊藤さんは言いました。

> > BSDの場合は存在しないファイルに / をつけてはいけないと
> > いうことですね。renameも同じでした。
> 
> なんかひっかかるなぁ。
> BSDの方が本家本元 UNIXの源流そのままの仕様で、最近の Solaris
> が変なんですが。起源はSVR4かなぁ。。
> 
> POSIX的には、末尾に余分な /をつけていいのはディレクトリだけで
> す。それ以外のファイルタイプではつけて良いとは書いてない。

すみません。"ファイルに / を" ではなくて
"ディレクトリ名に / を" でした。

また、mkdirやrenameはシステムコールの話で、
コマンドのmkdirの場合は、NetBSDでも 

mkdir /tmp/ddd/

はOKです。
それは、mkdirのコマンドが、システムコールのmkdirを呼び出す前に
おしりに付いた / を取っているからです。

ちなみにディレクトリ名をrenameする場合、

○ rename("/tmp/ddd", "/tmp/dddd");
○ rename("/tmp/ddd/", "/tmp/dddd");
× rename("/tmp/ddd", "/tmp/dddd/");
× rename("/tmp/ddd/", "/tmp/dddd/");

つまり、BSDの場合は存在しないディレクトリ名に / をつけてはいけない
(存在するディレクトリ名には / をつけてもよい)
となります。

ついでに、先の私のmailでmkdirの入口のところで、
おしりに付いた / を取るようにしたパッチを示しましたが、
コマンドのmkdirがしてることをシステムコールでやっても
とくに問題は起こらないと思うのですが、そんなことはない?