blob: 3682b209663380c18e8921d0628a9114b71e2b4d [file] [log] [blame]
Guido van Rossum6b47ed11990-10-21 16:17:08 +00001# Module 'stat'
2
3# Defines constants and functions for interpreting stat/lstat struct
4# as returned by posix.stat() and posix.lstat() (if it exists).
5
6# XXX This module may have to be adapted for UNIXoid systems whose
7# <sys/stat.h> deviates from AT&T or BSD UNIX; their S_IF* constants
8# may differ.
9
10# Suggested usage: from stat import *
11
12# Tuple indices for stat struct members
13
14ST_MODE = 0
15ST_INO = 1
16ST_DEV = 2
17ST_NLINK = 3
18ST_UID = 4
19ST_GID = 5
20ST_SIZE = 6
21ST_ATIME = 7
22ST_MTIME = 8
23ST_CTIME = 9
24
Guido van Rossum468c4481990-10-31 11:25:23 +000025def S_IMODE(mode):
26 return mode%4096
Guido van Rossum6b47ed11990-10-21 16:17:08 +000027def S_IFMT(mode):
28 return mode - mode%4096
29
30S_IFDIR = 0040000
31S_IFCHR = 0020000
32S_IFBLK = 0060000
33S_IFREG = 0100000
34S_IFIFO = 0010000
35S_IFLNK = 0120000
36S_IFSOCK = 0140000
37
38def S_ISDIR(mode):
Guido van Rossumbdfcfcc1992-01-01 19:35:13 +000039 return S_IFMT(mode) == S_IFDIR
Guido van Rossum6b47ed11990-10-21 16:17:08 +000040
41def S_ISCHR(mode):
Guido van Rossumbdfcfcc1992-01-01 19:35:13 +000042 return S_IFMT(mode) == S_IFCHR
Guido van Rossum6b47ed11990-10-21 16:17:08 +000043
44def S_ISBLK(mode):
Guido van Rossumbdfcfcc1992-01-01 19:35:13 +000045 return S_IFMT(mode) == S_IFBLK
Guido van Rossum6b47ed11990-10-21 16:17:08 +000046
47def S_ISREG(mode):
Guido van Rossumbdfcfcc1992-01-01 19:35:13 +000048 return S_IFMT(mode) == S_IFREG
Guido van Rossum6b47ed11990-10-21 16:17:08 +000049
50def S_ISFIFO(mode):
Guido van Rossumbdfcfcc1992-01-01 19:35:13 +000051 return S_IFMT(mode) == S_IFIFO
Guido van Rossum6b47ed11990-10-21 16:17:08 +000052
53def S_ISLNK(mode):
Guido van Rossumbdfcfcc1992-01-01 19:35:13 +000054 return S_IFMT(mode) == S_IFLNK
Guido van Rossum6b47ed11990-10-21 16:17:08 +000055
56def S_ISSOCK(mode):
Guido van Rossumbdfcfcc1992-01-01 19:35:13 +000057 return S_IFMT(mode) == S_IFSOCK