diff options
author | Guido van Rossum <guido@python.org> | 1992-03-31 19:03:19 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1992-03-31 19:03:19 (GMT) |
commit | 3bc034bb7982078514acb829dcd95ffe67ea2d48 (patch) | |
tree | 6723087478a7df3dbf41d8b5cf51d4d94eddc9cd /Lib/stat.py | |
parent | e58f98bfcf3dbaa73bc113ff9980c1d4afd83e23 (diff) | |
download | cpython-3bc034bb7982078514acb829dcd95ffe67ea2d48.zip cpython-3bc034bb7982078514acb829dcd95ffe67ea2d48.tar.gz cpython-3bc034bb7982078514acb829dcd95ffe67ea2d48.tar.bz2 |
Use bitwise ops instead of %; added some warnings and comments
Diffstat (limited to 'Lib/stat.py')
-rw-r--r-- | Lib/stat.py | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/Lib/stat.py b/Lib/stat.py index 3682b20..afb9a05 100644 --- a/Lib/stat.py +++ b/Lib/stat.py @@ -1,15 +1,16 @@ # Module 'stat' - +# # Defines constants and functions for interpreting stat/lstat struct -# as returned by posix.stat() and posix.lstat() (if it exists). - -# XXX This module may have to be adapted for UNIXoid systems whose -# <sys/stat.h> deviates from AT&T or BSD UNIX; their S_IF* constants -# may differ. - +# as returned by os.stat() and os.lstat() (if it exists). +# # Suggested usage: from stat import * +# +# XXX Strictly spoken, this module may have to be adapted for each POSIX +# implementation; in practice, however, the numeric constants used by +# stat() are almost universal (even for stat() emulations on non-UNIX +# systems like Macintosh or MS-DOS). -# Tuple indices for stat struct members +# Indices for stat struct members in tuple returned by os.stat() ST_MODE = 0 ST_INO = 1 @@ -22,10 +23,16 @@ ST_ATIME = 7 ST_MTIME = 8 ST_CTIME = 9 +# Extract bits from the mode + def S_IMODE(mode): - return mode%4096 + return mode & 07777 + def S_IFMT(mode): - return mode - mode%4096 + return mode & ~07777 + +# Constants used as S_IFMT() for various file types +# (not all are implemented on all systems) S_IFDIR = 0040000 S_IFCHR = 0020000 @@ -35,6 +42,8 @@ S_IFIFO = 0010000 S_IFLNK = 0120000 S_IFSOCK = 0140000 +# Functions to test for each file type + def S_ISDIR(mode): return S_IFMT(mode) == S_IFDIR |