From: Guido van Rossum Date: Tue, 31 Mar 1992 19:03:19 +0000 (+0000) Subject: Use bitwise ops instead of %; added some warnings and comments X-Git-Tag: v0.9.8~408 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3bc034bb7982078514acb829dcd95ffe67ea2d48;p=thirdparty%2FPython%2Fcpython.git Use bitwise ops instead of %; added some warnings and comments --- diff --git a/Lib/stat.py b/Lib/stat.py index 3682b2096633..afb9a0505819 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 -# 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