Subject: Re: wierd behaviour of mkdir(2)
To: None <greywolf@starwolf.com>
From: ITOH Yasufumi <itohy@netbsd.org>
List: tech-misc
Date: 10/20/2000 15:53:52
In article <Pine.NEB.4.21.0010192132010.6013-100000@gandalf.starwolf.com>
greywolf@starwolf.com writes:
> On Thu, 19 Oct 2000, Greg A. Woods wrote:
>
> # > It is an old debate that has no Posixly correct answer, if I recall
> # > right. It is very counterintuitive to allow mkdir to implicitly descend
> # > into the directory it is about to create, and the only reason this
> # > practice is so widespread is that historically System V allowed this
> # > (due to a bug in their namei implementation, to add insult to injury).
> #
> # NO! Not a bug -- a very explict design *feature* that's been there
> # since at least v6, if not before! UTSL!
>
> open("/some/path/", flags, mode) should still fail, though, if flags
> specifies creation and "/some/path" does not exist, or if it does exist
> as a non-directory.
I don't have the PC (Posixly correct) answer,
but Solaris consistently allows trailing shashes.
I don't like it, of course. :)
BSD Solaris
mkdir("foo/", 0777) Fail Succeed
open("bar/", O_WRONLY|O_CREAT, 0777) Fail Succeed
% touch file
link("file/", "new1/") Fail Succeed
symlink("file/", "new2/") Fail Succeed
symlink("file/", "new3") Succeed Succeed (symbolic only)
% cat new3 Fail Succeed
Some programs rely on the traditional behavior,
and needed being rewritten for Solaris. :-(
Just for your information.
--
ITOH, Yasufumi