understanding stat module names

Claudio Grondi claudio.grondi at freenet.de
Wed Jan 18 18:58:16 EST 2006


David Bear wrote:
> I'm trying to use os.chmod and am refered to the stat module.
> 
> Is there are explanation of:
>     * S_ISUID
>     * S_ISGID
>     * S_ENFMT
>     * S_ISVTX
>     * S_IREAD
>     * S_IWRITE
>     * S_IEXEC
>     * S_IRWXU
>     * S_IRUSR
>     * S_IWUSR
>     * S_IXUSR
>     * S_IRWXG
>     * S_IRGRP
>     * S_IWGRP
>     * S_IXGRP
>     * S_IRWXO
>     * S_IROTH
>     * S_IWOTH
>     * S_IXOTH
> 
> this isn't much help:
> 
>  dir(stat)
> ['ST_ATIME', 'ST_CTIME', 'ST_DEV', 'ST_GID', 'ST_INO', 'ST_MODE',
> 'ST_MTIME', 'ST_NLINK', 'ST_SIZE', 'ST_UID', 'S_ENFMT', 'S_IEXEC',
> 'S_IFBLK', 'S_IFCHR', 'S_IFDIR', 'S_IFIFO', 'S_IFLNK', 'S_IFMT', 'S_IFREG',
> 'S_IFSOCK', 'S_IMODE', 'S_IREAD', 'S_IRGRP', 'S_IROTH', 'S_IRUSR',
> 'S_IRWXG', 'S_IRWXO', 'S_IRWXU', 'S_ISBLK', 'S_ISCHR', 'S_ISDIR',
> 'S_ISFIFO', 'S_ISGID', 'S_ISLNK', 'S_ISREG', 'S_ISSOCK', 'S_ISUID',
> 'S_ISVTX', 'S_IWGRP', 'S_IWOTH', 'S_IWRITE', 'S_IWUSR', 'S_IXGRP',
> 'S_IXOTH', 'S_IXUSR', '__builtins__', '__doc__', '__file__', '__name__']
> 
>>>>print stat.__doc__
> 
> Constants/functions for interpreting results of os.stat() and os.lstat().
> 
> Suggested usage: from stat import *
> 
> 
> 
> 
from stat.h of Microsoft Visual C++ .NET 2003:

#define _S_IFMT         0170000         /* file type mask */
#define _S_IFDIR        0040000         /* directory */
#define _S_IFCHR        0020000         /* character special */
#define _S_IFIFO        0010000         /* pipe */
#define _S_IFREG        0100000         /* regular */
#define _S_IREAD        0000400         /* read permission, owner */
#define _S_IWRITE       0000200         /* write permission, owner */
#define _S_IEXEC        0000100         /* execute/search permission, 
owner */
#define S_IFMT   _S_IFMT
#define S_IFDIR  _S_IFDIR
#define S_IFCHR  _S_IFCHR
#define S_IFREG  _S_IFREG
#define S_IREAD  _S_IREAD
#define S_IWRITE _S_IWRITE
#define S_IEXEC  _S_IEXEC

struct stat {
         _dev_t st_dev;
         _ino_t st_ino;
         unsigned short st_mode;
         short st_nlink;
         short st_uid;
         short st_gid;
         _dev_t st_rdev;
         _off_t st_size;
         time_t st_atime;
         time_t st_mtime;
         time_t st_ctime;
         };

 From MSDN Help:

The _fstat function obtains information about the open file associated 
with fd and stores it in the structure pointed to by buffer. The _stat 
structure, defined in SYS\STAT.H, contains the following fields:

st_atime
Time of last file access.
st_ctime
Time of creation of file.
st_dev
If a device, fd; otherwise 0.
st_mode
Bit mask for file-mode information. The _S_IFCHR bit is set if fd refers 
to a device. The _S_IFREG bit is set if fd refers to an ordinary file. 
The read/write bits are set according to the file's permission mode. 
_S_IFCHR and other constants are defined in SYS\STAT.H.
st_mtime
Time of last modification of file.
st_nlink
Always 1 on non-NTFS file systems.
st_rdev
If a device, fd; otherwise 0.
st_size
Size of the file in bytes.

Probably googling for the constants will show up some more useful 
information , too.

Hope this helps.

Claudio



More information about the Python-list mailing list