Differences between version 5 and previous revision of fstat(2).
Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 5 | Last edited on Wednesday, November 6, 2002 9:16:22 pm | by PerryLorier | Revert |
Older page: | version 4 | Last edited on Monday, November 4, 2002 11:10:31 am | by PerryLorier | Revert |
@@ -51,8 +51,32 @@
;S_ISLNK(m): symbolic link? (Not in POSIX.1-1996.)
;S_ISSOCK(m): socket? (Not in POSIX.1-1996.)
The following flags are defined for the ''st_mode'' field:
+
+|S_IFMT|0170000|bitmask for the file type bitfields
+|S_IFSOCK|0140000|socket
+|S_IFLNK|0120000|SymbolicLink
+|S_IFREG|0100000|regular file
+|S_IFBLK|0060000|BlockDevice
+|S_IFDIR|0040000|directory
+|S_IFCHR|0020000|CharacterDevice
+|S_IFIFO|0010000|NamedFifo
+|S_ISUID|0004000|set UID bit
+|S_ISGID|0002000|set GID bit (see below)
+|S_ISVTX|0001000|sticky bit (see below)
+|S_IRWXU|00700|mask for file owner permissions
+|S_IRUSR|00400|owner has read permission
+|S_IWUSR|00200|owner has write permission
+|S_IXUSR|00100|owner has execute permission
+|S_IRWXG|00070|mask for group permissions
+|S_IRGRP|00040|group has read permission
+|S_IWGRP|00020|group has write permission
+|S_IXGRP|00010|group has execute permission
+|S_IRWXO|00007|mask for permissions for others (not in group)
+|S_IROTH|00004|others have read permission
+|S_IWOTH|00002|others have write permisson
+|S_IXOTH|00001|others have execute permission
The set GID bit (S_ISGID) has several special uses: For a directory it indicates that BSD semantics is to be used for that directory: files created there inherit their group ID from the directory, not from the effective gid of the creating process, and directories created there will also get the S_ISGID bit set. For a file that does not have the group execution bit (S_IXGRP) set, it indicates mandatory file/record locking.
The `sticky' bit (S_ISVTX) on a directory means that a file in that directory can be renamed or deleted only by the owner of the file, by the owner of the directory, and by root.
@@ -81,8 +105,35 @@
Unix V7 (and later systems) had S_IREAD, S_IWRITE, S_IEXEC, where POSIX prescribes the synonyms S_IRUSR, S_IWUSR, S_IXUSR.
!!OTHER SYSTEMS
Values that have been (or are) in use on various systems:
+
+|^__hex__|^__name__|^__ls__|^__octal__|^__description__
+|f000|S_IFMT| |170000|mask for file type
+|0000|| |000000|SCO out-of-service inode, BSD unknown type, SVID-v2 and XPG2 have both 0 and 0100000 for ordinary file
+|1000|S_IFIFO|p (pipe symbol)|010000|fifo (named pipe)
+|2000|S_IFCHR|c|020000|character special (V7)
+|3000|S_IFMPC| |030000|multiplexed character special (V7)
+|4000|S_IFDIR|d/|040000|directory (V7)
+|5000|S_IFNAM| |050000|XENIX named special file with two subtypes, distinguished by st_rdev values 1, 2:
+|0001|S_INSEM|s|000001|XENIX semaphore subtype of IFNAM
+|0002|S_INSHD|m|000002|XENIX shared data subtype of IFNAM
+|6000|S_IFBLK|b|060000|block special (V7)
+|7000|S_IFMPB| |070000|multiplexed block special (V7)
+|8000|S_IFREG|-|100000|regular (V7)
+|9000|S_IFCMP| |110000|VxFS compressed
+|9000|S_IFNWK|n|110000|network special (HP-UX)
+|a000|S_IFLNK|l@|120000|symbolic link (BSD)
+|b000|S_IFSHAD| |130000|Solaris shadow inode for ACL (not seen by userspace)
+|c000|S_IFSOCK|s=|140000|socket (BSD; also "S_IFSOC" on VxFS)
+|d000|S_IFDOOR|D>|150000|Solaris door
+|e000|S_IFWHT|w%|160000|BSD whiteout (not used for inode)
+|0200|S_ISVTX| |001000|`sticky bit': save swapped text even after use (V7), reserved (SVID-v2), On non-directories: don't cache this file (SunOS), On directories: restricted deletion flag (SVID-v4.2)
+|0400|S_ISGID| |002000|set group ID on execution (V7), for directories: use BSD semantics for propagation of gid
+|0400|S_ENFMT| |002000|SysV file locking enforcement (shared w/ S_ISGID)
+|0800|S_ISUID| |004000|set user ID on execution (V7)
+|0800|S_CDF| |004000|directory is a context dependent file (HP-UX)
+
A sticky command appeared in Version 32V AT
!!SEE ALSO
chmod(2), chown(2), readlink(2), utime(2)