[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>