Accessing files by inode #s
Guy Harris
guy at gorodish.Sun.COM
Wed Feb 10 14:25:34 AEST 1988
> The reason the reference to -inum was deleted is that the concept
> of an inumber relates to one specific (well, two, but I digress)
> implementation of the filesystem. Thus all mention of them (inodes)
> were expurgated from the SVID. And since all recent sysV manuals
> are derived from the SVID (choke gasp) they all lack any information
> on how things work.
1) The System III manual doesn't mention "-inum" either, and that
manual certainly antedates the SVID, since it antedates SV.
I assume here that the S3 "find" had "-inum"; the V7 one did (and documented
it), and the S5 one did (but didn't document it). It is certainly possible
that they picked it up from Research between S3 and S5. Unfortunately, it
has been several years since I had S3 source handy, so I can't check this.
However:
2) The System V "Release 1" manual also doesn't mention it. The SCCS ID in
The S5R1 "find.1" has a date of 5/18/82, while the SVID, Issue 2, has a
copyright year of 1986. (Issue 1 didn't have any commands.) The S5R1
"find" definitely *did* have "-inum"; I just checked the S5R1 source.
3) On page 126 of Volume 2 of Issue 2 of the SVID, it says (this is the page
for "stat" and "fstat"):
The contents of the structure "stat" pointed to by "buf" include the
following members:
...
ino_t st_ino; /* i-node number */
so it appears that all mention of inodes were not removed from the SVID,
unless you consider "i-node"s to be different from "inode"s.
4) The concept of an i-number may relate to some particular file system
implementations, but the concept of a unique per-file-system file ID
doesn't. From Draft 12 of the POSIX standard:
file serial number
A "file serial number" is a per-"file system" unique identifier
for a "file". "File serial numbers" are not necessarily unique
throughout the system.
...
5.6 File Characteristics
...
5.6.1.2 Description
The header <sys/stat.h> defines the structure "stat" returned by the
functions "stat()" and "fstat()".
Member Member
Type Name Description
______ ______ _____________________________
...
ino_t st_ino File serial number
so saying that i-numbers are peculiar to some particular file system type
provides no excuse for leaving "-inum" out; "find -inum" can search for all
files with a particular "file serial number".
5) "All recent sysV manuals are derived from the SVID"? Wrongo. The SVID is
derived from various flavors of S5 manuals, and there may be some
reverse-channel information flow (e.g. as people doing the SVID discover
stuff the documentation Doesn't Quite Cover, things may get pushed back into
the documentation), but the S5 manuals are *NOT* simply "derived from the
SVID".
6) The S5 "find" manual page doesn't mention the "-ncpio" flag, either; this
flag is similar to the documented "-cpio" flag, except that it produces
"cpio -c" output rather than binary "cpio" output. If you grant that "find
-cpio" is useful, you must grant that "find -ncpio" is far more useful, as
binary "cpio" output cannot easily be read on machines with a different byte
order (no, the byte swapping options in the S5 "cpio" don't help one bit -
you *can't* do it with the tools provided with S5, unless you include "ed"
or "vi" and "cc" among the tools).
So it appears that there are several lacunae in the S5 "find" man page, some
of which clearly can't be blamed on the baleful influence of the SVID. The
hypothesis that best fits the facts here is that Somebody Just Forgot To
Document It.
More information about the Comp.unix.questions
mailing list