[Top] [Prev] [Next]

stat, wstat - inquire or change file attributes

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 Transaction

The stat transaction inquires about the file identified by fid. The reply includes (in the stat argument) a directory entry containing the file's attributes.

The stat request requires no special permissions other than those needed to acquire fid.

Directory Entry Layout

Both the stat and wstat messages transmit file attributes in a machine-independent representation called a directory entry.

A directory entry is 116-bytes long. See DIRLEN in <lib9.h>. 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.(see lib9.h)

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).

The wstat Transaction

The wstat request can change certain file attributes.

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.


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.

Entry Points

Type stat messages are generated by the fstat and stat calls (see stat, fstat, fwstat, wstat - get and put file status in Chapter 8).

See Also

[Top] [Prev] [Next]

Copyright © 1996,Lucent Technologies, Inc. All rights reserved.