summaryrefslogtreecommitdiff
path: root/sys/src/cmd/python/Doc/lib/libstat.tex
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@localhost>2011-05-03 11:25:13 +0000
committercinap_lenrek <cinap_lenrek@localhost>2011-05-03 11:25:13 +0000
commit458120dd40db6b4df55a4e96b650e16798ef06a0 (patch)
tree8f82685be24fef97e715c6f5ca4c68d34d5074ee /sys/src/cmd/python/Doc/lib/libstat.tex
parent3a742c699f6806c1145aea5149bf15de15a0afd7 (diff)
add hg and python
Diffstat (limited to 'sys/src/cmd/python/Doc/lib/libstat.tex')
-rw-r--r--sys/src/cmd/python/Doc/lib/libstat.tex157
1 files changed, 157 insertions, 0 deletions
diff --git a/sys/src/cmd/python/Doc/lib/libstat.tex b/sys/src/cmd/python/Doc/lib/libstat.tex
new file mode 100644
index 000000000..d5353f1d1
--- /dev/null
+++ b/sys/src/cmd/python/Doc/lib/libstat.tex
@@ -0,0 +1,157 @@
+\section{\module{stat} ---
+ Interpreting \function{stat()} results}
+
+\declaremodule{standard}{stat}
+\modulesynopsis{Utilities for interpreting the results of
+ \function{os.stat()}, \function{os.lstat()} and \function{os.fstat()}.}
+\sectionauthor{Skip Montanaro}{skip@automatrix.com}
+
+
+The \module{stat} module defines constants and functions for
+interpreting the results of \function{os.stat()},
+\function{os.fstat()} and \function{os.lstat()} (if they exist). For
+complete details about the \cfunction{stat()}, \cfunction{fstat()} and
+\cfunction{lstat()} calls, consult the documentation for your system.
+
+The \module{stat} module defines the following functions to test for
+specific file types:
+
+
+\begin{funcdesc}{S_ISDIR}{mode}
+Return non-zero if the mode is from a directory.
+\end{funcdesc}
+
+\begin{funcdesc}{S_ISCHR}{mode}
+Return non-zero if the mode is from a character special device file.
+\end{funcdesc}
+
+\begin{funcdesc}{S_ISBLK}{mode}
+Return non-zero if the mode is from a block special device file.
+\end{funcdesc}
+
+\begin{funcdesc}{S_ISREG}{mode}
+Return non-zero if the mode is from a regular file.
+\end{funcdesc}
+
+\begin{funcdesc}{S_ISFIFO}{mode}
+Return non-zero if the mode is from a FIFO (named pipe).
+\end{funcdesc}
+
+\begin{funcdesc}{S_ISLNK}{mode}
+Return non-zero if the mode is from a symbolic link.
+\end{funcdesc}
+
+\begin{funcdesc}{S_ISSOCK}{mode}
+Return non-zero if the mode is from a socket.
+\end{funcdesc}
+
+Two additional functions are defined for more general manipulation of
+the file's mode:
+
+\begin{funcdesc}{S_IMODE}{mode}
+Return the portion of the file's mode that can be set by
+\function{os.chmod()}---that is, the file's permission bits, plus the
+sticky bit, set-group-id, and set-user-id bits (on systems that support
+them).
+\end{funcdesc}
+
+\begin{funcdesc}{S_IFMT}{mode}
+Return the portion of the file's mode that describes the file type (used
+by the \function{S_IS*()} functions above).
+\end{funcdesc}
+
+Normally, you would use the \function{os.path.is*()} functions for
+testing the type of a file; the functions here are useful when you are
+doing multiple tests of the same file and wish to avoid the overhead of
+the \cfunction{stat()} system call for each test. These are also
+useful when checking for information about a file that isn't handled
+by \refmodule{os.path}, like the tests for block and character
+devices.
+
+All the variables below are simply symbolic indexes into the 10-tuple
+returned by \function{os.stat()}, \function{os.fstat()} or
+\function{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}
+Size in bytes of a plain file; amount of data waiting on some special
+files.
+\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}
+The ``ctime'' as reported by the operating system. On some systems
+(like \UNIX) is the time of the last metadata change, and, on others
+(like Windows), is the creation time (see platform documentation for
+details).
+\end{datadesc}
+
+The interpretation of ``file size'' changes according to the file
+type. For plain files this is the size of the file in bytes. For
+FIFOs and sockets under most flavors of \UNIX{} (including Linux in
+particular), the ``size'' is the number of bytes waiting to be read at
+the time of the call to \function{os.stat()}, \function{os.fstat()},
+or \function{os.lstat()}; this can sometimes be useful, especially for
+polling one of these special files after a non-blocking open. The
+meaning of the size field for other character and block devices varies
+more, depending on the implementation of the underlying system call.
+
+Example:
+
+\begin{verbatim}
+import os, sys
+from stat import *
+
+def walktree(top, callback):
+ '''recursively descend the directory tree rooted at top,
+ calling the callback function for each regular file'''
+
+ for f in os.listdir(top):
+ pathname = os.path.join(top, f)
+ mode = os.stat(pathname)[ST_MODE]
+ if S_ISDIR(mode):
+ # It's a directory, recurse into it
+ walktree(pathname, callback)
+ elif S_ISREG(mode):
+ # It's a file, call the callback function
+ callback(pathname)
+ else:
+ # Unknown file type, print a message
+ print 'Skipping %s' % pathname
+
+def visitfile(file):
+ print 'visiting', file
+
+if __name__ == '__main__':
+ walktree(sys.argv[1], visitfile)
+\end{verbatim}