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