summaryrefslogtreecommitdiffstats
path: root/Doc/libstat.tex
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1996-12-19 22:39:22 (GMT)
committerGuido van Rossum <guido@python.org>1996-12-19 22:39:22 (GMT)
commite8e9ed176ff496d95272bcf13fc2598296d09fbc (patch)
treed7c0325cede60b1205ab099dbbf77df530e163bb /Doc/libstat.tex
parentfa5a6cff45402dd1ab44879fccb8323bdea1bfc6 (diff)
downloadcpython-e8e9ed176ff496d95272bcf13fc2598296d09fbc.zip
cpython-e8e9ed176ff496d95272bcf13fc2598296d09fbc.tar.gz
cpython-e8e9ed176ff496d95272bcf13fc2598296d09fbc.tar.bz2
Docs for stat.py -- docs by Skip Montanaro.
Diffstat (limited to 'Doc/libstat.tex')
-rw-r--r--Doc/libstat.tex106
1 files changed, 106 insertions, 0 deletions
diff --git a/Doc/libstat.tex b/Doc/libstat.tex
new file mode 100644
index 0000000..67335a5
--- /dev/null
+++ b/Doc/libstat.tex
@@ -0,0 +1,106 @@
+% By Skip Montanaro
+
+\section{Standard module \sectcode{stat}}
+\stmodindex{stat}
+
+The \code{stat} module defines constants and functions for interpreting the
+results of \code{os.stat} and \code{os.lstat} (if it exists). For complete
+details about the \code{stat} and \code{lstat} system calls, consult your
+local man pages.
+
+The \code{stat} module defines the following functions:
+
+\renewcommand{\indexsubitem}{(in module stat)}
+
+\begin{funcdesc}{S_ISDIR}{mode}
+Return non-zero if the mode was gotten from a directory file.
+\end{funcdesc}
+
+\begin{funcdesc}{S_ISCHR}{mode}
+Return non-zero if the mode was gotten from a character special device.
+\end{funcdesc}
+
+\begin{funcdesc}{S_ISREG}{mode}
+Return non-zero if the mode was gotten from a regular file.
+\end{funcdesc}
+
+\begin{funcdesc}{S_ISFIFO}{mode}
+Return non-zero if the mode was gotten from a FIFO.
+\end{funcdesc}
+
+\begin{funcdesc}{S_ISLNK}{mode}
+Return non-zero if the mode was gotten from a symbolic link.
+\end{funcdesc}
+
+\begin{funcdesc}{S_ISSOCK}{mode}
+Return non-zero if the mode was gotten from a socket.
+\end{funcdesc}
+
+All the data items below are simply symbolic indexes into the 10-tuple
+returned by \code{os.stat} or \code{os.lstat}.
+
+\begin{datadesc}{ST_MODE}
+Inode protection mode.
+\end{datadesc}
+
+\begin{datadesc}{ST_INO}
+Inode number.
+\end{datadesc}
+
+\begin{datadesc}{ST_DEV}
+Device inode resides on.
+\end{datadesc}
+
+\begin{datadesc}{ST_NLINK}
+Number of links to the inode.
+\end{datadesc}
+
+\begin{datadesc}{ST_UID}
+User id of the owner.
+\end{datadesc}
+
+\begin{datadesc}{ST_GID}
+Group id of the owner.
+\end{datadesc}
+
+\begin{datadesc}{ST_SIZE}
+File size in bytes.
+\end{datadesc}
+
+\begin{datadesc}{ST_ATIME}
+Time of last access.
+\end{datadesc}
+
+\begin{datadesc}{ST_MTIME}
+Time of last modification.
+\end{datadesc}
+
+\begin{datadesc}{ST_CTIME}
+Time of creation.
+\end{datadesc}
+
+Example:
+
+\begin{verbatim}
+import os, sys
+from stat import *
+
+def process(dir, func):
+ '''recursively descend the directory rooted at dir, calling func for
+ each regular file'''
+
+ for f in os.listdir(dir):
+ mode = os.stat('%s/%s' % (dir, f))[ST_MODE]
+ if S_ISDIR(mode):
+ # recurse into directory
+ process('%s/%s' % (dir, f), func)
+ elif S_ISREG(mode):
+ func('%s/%s' % (dir, f))
+ else:
+ print 'Skipping %s/%s' % (dir, f)
+
+def f(file):
+ print 'frobbed', file
+
+if __name__ == '__main__': process(sys.argv[1], f)
+\end{verbatim}