Tstat tag [2] fid [2] Rstat tag [2] fid [2] stat [116] Twstat tag [2] fid [2] stat [116] Rwstat tag [2] fid [2]
The stat request requires no special permissions other than those needed to acquire fid.
A directory entry is 116-bytes long. Integers in this encoding are in little-endian order (least significant byte first). The convM2D and convD2M routines (see ) convert between directory entries and C language structures.
This encoding may be turned into a machine dependent Dir structure using routines defined in styx.
A directory entry is laid out as follows:
name [28] | File name. If the file is the root directory of the server the name must be /. |
uid [28] | Owner name |
gid [28] | Group name |
qid.path [4] | File server's identification for the file. See Inferno Communications Protocol, Styx. |
qid.vers [4] | Version number for given path. See Inferno Communications Protocol, Styx. |
mode [4] | Permissions and flags. The mode contains permission bits as described in Inferno Devices in Chapter 2 and 16r80000000 if this file is a directory. |
atime [4] | The last access time. The atime field records the last read of the contents; it is also set whenever mtime is set. For a directory, atime is set by an attach, walk, or create, all whether successful or not. The value is measured in seconds since the epoch (Jan 1 00:00 1970 GMT). |
mtime [4] | The last modification time. The mtime field reflects the time of the last change of content. For a plain file, mtime is the time of the most recent create, open with truncation, or write; for a directory it is the time of the most recent remove, create, or wstat of a file in the directory. The value is measured in seconds since the epoch (Jan 1 00:00 1970 GMT). |
length [8] | Length of file in bytes. Directories and most files representing devices have, by convention, a length of 0. |
type [2] | The device type for the file, a single character representing the root of a file tree implemented by a particular kernel device driver. |
dev [2] | See discussion of dev in Inferno Communications Protocol, Styx. |
A read of a directory yields an integral number of directory entries in the machine independent encoding given above (see read, write - transfer data from and to a file).
name | The name can be changed by anyone with write permission in the parent directory. It is an error to change the name of a file to that of an existing file. |
mode and mtime | The mode and mtime can be changed by the owner of the file. The directory bit cannot be changed by a wstat. All the other defined permission and mode bits can be change. |
gid | The gid can be changed: by the owner if also a member of the new group. (See Inferno Communications Protocol, Styx for more information about permissions and users for users and groups). |
None of the other attributes can be altered by a wstat. In particular, there is no way to change the owner of a file.