Re: `rmdir .` doesn't work in 2.4

Kurt Roeckx
2001-01-09T17:03:18Z

On Mon, Jan 08, 2001 at 11:50:44PM +0100, Andries.Brouwer@cwi.nl wrote:
> From: Andrea Arcangeli <andrea@suse.de>
>
> > But in fact it fails with EINVAL, and
> >
> > [EINVAL]: The path argument contains a last component that is dot.
>
> I can't confirm. The specs I'm checking are here:
>
> http://www.opengroup.org/onlinepubs/007908799/xsh/rmdir.html
>
> That is the SUSv2 text, one of the ingredients for the new
> POSIX standard. I quoted the current Austin draft, the current
> draft for the next version of the POSIX standard.
>
> Quoting a text fragment:
>
> The rmdir( ) function shall remove a directory whose name is given by
> path. The directory is removed only if it is an empty directory.
> If the directory is the root directory or the current working
> directory of any process, it is unspecified whether the function
> succeeds, or whether it shall fail and set errno to [EBUSY].
> If path names a symbolic link, then rmdir( ) shall fail and
> set errno to [ENOTDIR]. If the path argument refers to a path
> whose final component is either dot or dot-dot, rmdir( ) shall
> fail. ...

At the bottom of Andrea Arcangeli's url, it says:
Derived from the POSIX.1-1988 standard.

I think it makes sense that if POSIX changed it, that we should
follow POSIX, and not SuS v2, specially if it simplify's things
in the kernel.

Kurt