blob: 273745d8035f869ccec4d6da8242e6bb6a5b3df0 [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
25def S_IFMT(mode):
26 return mode - mode%4096
27
28S_IFDIR = 0040000
29S_IFCHR = 0020000
30S_IFBLK = 0060000
31S_IFREG = 0100000
32S_IFIFO = 0010000
33S_IFLNK = 0120000
34S_IFSOCK = 0140000
35
36def S_ISDIR(mode):
37 return S_IFMT(mode) = S_IFDIR
38
39def S_ISCHR(mode):
40 return S_IFMT(mode) = S_IFCHR
41
42def S_ISBLK(mode):
43 return S_IFMT(mode) = S_IFBLK
44
45def S_ISREG(mode):
46 return S_IFMT(mode) = S_IFREG
47
48def S_ISFIFO(mode):
49 return S_IFMT(mode) = S_IFIFO
50
51def S_ISLNK(mode):
52 return S_IFMT(mode) = S_IFLNK
53
54def S_ISSOCK(mode):
55 return S_IFMT(mode) = S_IFSOCK