[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がしてることをシステムコールでやっても
とくに問題は起こらないと思うのですが、そんなことはない?