From: Andries.Brouwer@cwi.nl
To: Andries.Brouwer@cwi.nl, andrea@suse.de
Cc: linux-kernel@vger.kernel.org, viro@math.psu.edu
Subject: Re: `rmdir .` doesn't work in 2.4
Date: Mon, 8 Jan 2001 23:50:44 +0100 (MET) [thread overview]
Message-ID: <UTC200101082250.XAA147777.aeb@texel.cwi.nl> (raw)
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. ...
> Indeed, rmdir("P/D") does roughly the following:
> (i) check that P/D is a directory
> (ii) check that P/D does not have entries other than . and ..
> (iii) delete the names . and .. from P/D
> (iv) delete the name D from P
SUSv2 is straightforward. It doesn't talk about (iv).
I just made explicit what rmdir() actually does, in order to
show that a trailing dot really is a different case where
other rules than the usual ones would have to be applied.
Indeed, rmdir("foo/bar") finishes by removing the name "bar"
from the directory "foo", but rmdir("foo/.") does not finish
by removing the name "." from the directory "foo".
Andries
[Think classical Unix: there are inodes, and there are names.
The rmdir call, just like rm, removes names. Now foo and foo/.
may both be names for the same inode, but they are not the same name.]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
next reply other threads:[~2001-01-08 22:51 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-01-08 22:50 Andries.Brouwer [this message]
2001-01-08 23:22 ` Andrea Arcangeli
2001-01-09 17:02 ` Kurt Roeckx
-- strict thread matches above, loose matches on Subject: below --
2001-01-09 14:38 Jesse Pollard
2001-01-09 13:41 Jesse Pollard
2001-01-09 14:06 ` Andrea Arcangeli
2001-01-10 14:47 ` Stephen C. Tweedie
2001-01-10 15:03 ` Andrea Arcangeli
2001-01-10 17:28 ` Alexander Viro
2001-01-10 17:38 ` Andrea Arcangeli
2001-01-09 14:23 ` Alexander Viro
2001-01-09 12:18 Andries.Brouwer
2001-01-08 20:56 Andries.Brouwer
2001-01-08 21:34 ` Andrea Arcangeli
2001-01-10 22:25 ` Matthias Andree
2001-01-08 17:08 Andrea Arcangeli
2001-01-08 17:31 ` Mohammad A. Haque
2001-01-08 17:55 ` Andrea Arcangeli
2001-01-08 18:04 ` Alexander Viro
2001-01-08 20:30 ` Andrea Arcangeli
2001-01-08 21:08 ` Alexander Viro
2001-01-08 21:56 ` Andrea Arcangeli
2001-01-08 23:28 ` Linus Torvalds
2001-01-09 8:09 ` Stefan Traby
2001-01-09 10:48 ` Eric Lammerts
2001-01-09 9:31 ` Albert D. Cahalan
2001-01-09 15:00 ` Alexander Viro
2001-01-09 20:59 ` Albert D. Cahalan
2001-01-09 21:42 ` Alexander Viro
2001-01-08 23:27 ` Linus Torvalds
2001-01-09 0:01 ` Andrea Arcangeli
2001-01-09 13:50 ` Stephen C. Tweedie
2001-01-08 17:58 ` Alexander Viro
2001-01-08 20:28 ` Andrea Arcangeli
2001-01-09 13:52 ` Stephen C. Tweedie
2001-01-08 21:54 ` Stefan Traby
2001-01-08 22:11 ` Benson Chow
2001-01-08 22:37 ` Andrea Arcangeli
2001-01-09 1:37 ` Wakko Warner
2001-01-09 1:55 ` Andrea Arcangeli
2001-01-09 4:56 ` Marc Lehmann
2001-01-11 18:57 ` Bernhard Rosenkraenzer
2001-01-09 13:39 ` Alexander Viro
2001-01-12 18:27 ` Pavel Machek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=UTC200101082250.XAA147777.aeb@texel.cwi.nl \
--to=andries.brouwer@cwi.nl \
--cc=andrea@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=viro@math.psu.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®