]>
Commit | Line | Data |
---|---|---|
3257aa99 DM |
1 | """Constants/functions for interpreting results of os.stat() and os.lstat().\r |
2 | \r | |
3 | Suggested usage: from stat import *\r | |
4 | """\r | |
5 | \r | |
6 | # Indices for stat struct members in the tuple returned by os.stat()\r | |
7 | \r | |
8 | ST_MODE = 0\r | |
9 | ST_INO = 1\r | |
10 | ST_DEV = 2\r | |
11 | ST_NLINK = 3\r | |
12 | ST_UID = 4\r | |
13 | ST_GID = 5\r | |
14 | ST_SIZE = 6\r | |
15 | ST_ATIME = 7\r | |
16 | ST_MTIME = 8\r | |
17 | ST_CTIME = 9\r | |
18 | \r | |
19 | # Extract bits from the mode\r | |
20 | \r | |
21 | def S_IMODE(mode):\r | |
22 | return mode & 07777\r | |
23 | \r | |
24 | def S_IFMT(mode):\r | |
25 | return mode & 0170000\r | |
26 | \r | |
27 | # Constants used as S_IFMT() for various file types\r | |
28 | # (not all are implemented on all systems)\r | |
29 | \r | |
30 | S_IFDIR = 0040000\r | |
31 | S_IFCHR = 0020000\r | |
32 | S_IFBLK = 0060000\r | |
33 | S_IFREG = 0100000\r | |
34 | S_IFIFO = 0010000\r | |
35 | S_IFLNK = 0120000\r | |
36 | S_IFSOCK = 0140000\r | |
37 | \r | |
38 | # Functions to test for each file type\r | |
39 | \r | |
40 | def S_ISDIR(mode):\r | |
41 | return S_IFMT(mode) == S_IFDIR\r | |
42 | \r | |
43 | def S_ISCHR(mode):\r | |
44 | return S_IFMT(mode) == S_IFCHR\r | |
45 | \r | |
46 | def S_ISBLK(mode):\r | |
47 | return S_IFMT(mode) == S_IFBLK\r | |
48 | \r | |
49 | def S_ISREG(mode):\r | |
50 | return S_IFMT(mode) == S_IFREG\r | |
51 | \r | |
52 | def S_ISFIFO(mode):\r | |
53 | return S_IFMT(mode) == S_IFIFO\r | |
54 | \r | |
55 | def S_ISLNK(mode):\r | |
56 | return S_IFMT(mode) == S_IFLNK\r | |
57 | \r | |
58 | def S_ISSOCK(mode):\r | |
59 | return S_IFMT(mode) == S_IFSOCK\r | |
60 | \r | |
61 | # Names for permission bits\r | |
62 | \r | |
63 | S_ISUID = 04000\r | |
64 | S_ISGID = 02000\r | |
65 | S_ENFMT = S_ISGID\r | |
66 | S_ISVTX = 01000\r | |
67 | S_IREAD = 00400\r | |
68 | S_IWRITE = 00200\r | |
69 | S_IEXEC = 00100\r | |
70 | S_IRWXU = 00700\r | |
71 | S_IRUSR = 00400\r | |
72 | S_IWUSR = 00200\r | |
73 | S_IXUSR = 00100\r | |
74 | S_IRWXG = 00070\r | |
75 | S_IRGRP = 00040\r | |
76 | S_IWGRP = 00020\r | |
77 | S_IXGRP = 00010\r | |
78 | S_IRWXO = 00007\r | |
79 | S_IROTH = 00004\r | |
80 | S_IWOTH = 00002\r | |
81 | S_IXOTH = 00001\r | |
82 | \r | |
83 | # Names for file flags\r | |
84 | \r | |
85 | UF_NODUMP = 0x00000001\r | |
86 | UF_IMMUTABLE = 0x00000002\r | |
87 | UF_APPEND = 0x00000004\r | |
88 | UF_OPAQUE = 0x00000008\r | |
89 | UF_NOUNLINK = 0x00000010\r | |
90 | UF_COMPRESSED = 0x00000020 # OS X: file is hfs-compressed\r | |
91 | UF_HIDDEN = 0x00008000 # OS X: file should not be displayed\r | |
92 | SF_ARCHIVED = 0x00010000\r | |
93 | SF_IMMUTABLE = 0x00020000\r | |
94 | SF_APPEND = 0x00040000\r | |
95 | SF_NOUNLINK = 0x00100000\r | |
96 | SF_SNAPSHOT = 0x00200000\r |