blob: fee49659a700cf01e25e3fff5c5a702aa822bd11 [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):
39 return S_IFMT(mode) = S_IFDIR
40
41def S_ISCHR(mode):
42 return S_IFMT(mode) = S_IFCHR
43
44def S_ISBLK(mode):
45 return S_IFMT(mode) = S_IFBLK
46
47def S_ISREG(mode):
48 return S_IFMT(mode) = S_IFREG
49
50def S_ISFIFO(mode):
51 return S_IFMT(mode) = S_IFIFO
52
53def S_ISLNK(mode):
54 return S_IFMT(mode) = S_IFLNK
55
56def S_ISSOCK(mode):
57 return S_IFMT(mode) = S_IFSOCK