Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84 exptools; site whuxl.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxt!houxm!whuxl!mike
From: mike@whuxl.UUCP (BALDWIN)
Newsgroups: net.unix-wizards
Subject: Re: /tmp... (null pathnames)
Message-ID: <800@whuxl.UUCP>
Date: Mon, 11-Nov-85 19:26:24 EST
Article-I.D.: whuxl.800
Posted: Mon Nov 11 19:26:24 1985
Date-Received: Tue, 12-Nov-85 06:19:50 EST
References: <2397@brl-tgr.ARPA> <742@whuxl.UUCP> <65@hadron.UUCP>
Organization: AT&T Bell Laboratories, Whippany
Lines: 29

> In the name "/usr/bin/glumph", each file or directory (node) is
> named "/" or "".  That's all.  It's the connection ("link")
> between one and the next that is named "usr" or "bin" or "glumph".
> The picture (attempted later below) that labels nodes with these
> names should always label links with these names!  But, this is
> why multiple "/"s mean the same as one (or none, where appropriate).
> I just said they were "names", but they are actually separators for
> the real names, the names of the links.  And if there is nothing
> between them, then they reference the null link "", which goes
> nowhere (hence "" is equivalent in some systems to ".").

Um sorry, but you're wrong.  The kernel does *not* treat a///b as
a/""/""/b; if you look in nami.c, there a loop that skips multiple
slashes.  So /// == / is not because of "" magic, it's just what
the code does.  Directories being named "/" or "" just doesn't wash.
If you're talking about inodes, dirs don't have any names at all.
This is how you *really* get to ///usr///bin///glumph///:

	path starts with / so start in root dir [skip /'s]
	get inode for entry named "usr" [skip /'s]
	make sure it's a dir, get inode for entry named "bin" [skip /'s]
	make sure it's a dir, get inode for entry named "glumph" [skip /'s]
	no more path, so return

Anyway, all I really wanted to say was that a///b has nothing to
do with null names.
-- 
						Michael Baldwin
						{at&t}!whuxl!mike