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

Re: KDE2



大阪大学の齊藤です。

> > mkdir("/tmp/xxx/", 0x1c0);
> > のように、ファイル名の最後に'/'が付くとerrnoが2のエラーとなりますか?
> > 他のUNIXでは正常にmkdirできるようです。

それって、Solarisじゃないですか? Solarisはpathnameの末尾の
/は常に無視するようで、
cat /etc/fstab/
でもエラーにならない変な奴なので、それを普通だと思ってはいけな
いとおもいます。

> 「他のUNIX」が何なのかわかりませんが、実装の話をするならば
> POSIX とか参照したほうがいいのでは。 mkdir(1) は最後の / を
> 取ってくれるようですが、 mkdir(2) がどうあるべきなのかは
> 知りません ^^;

POSIXでは、
path prefix: pathname または pathnameの末尾に /をつけたもの
pathname: / で区切ってファイル名を並べたもの
	パス名がディレクトリをさす時は、最後に一つあるいは複
	数の/をもってよい(may)

となっています。
ディレクトリ名の後ろに / をつけるのは「may」なので、
mkdir /dir/name/ がエラーになってもPOSIXに違反して
いるとはいえないと思います。

ちなみに、
「strictに POSIXに準拠しようとするアプリケーションプログラムは、
規格で may となっている機能は optionalだとみなして使うな」とも
書いてあります。
(POSIX P1003.1-1990)

原書を斜め読みしただけなので、要確認。

	齊藤 明紀 <saitoh@ics.ES.osaka-u.ac.jp>