cinap_lenrekadd hg and python4bb9e2215 years agoHistory
97 lines · 4.0 KB · TeX
RawDownload
\section{\module{posix} ---         The most common \POSIX{} system calls} \declaremodule{builtin}{posix}  \platform{Unix}\modulesynopsis{The most common \POSIX\ system calls (normally used                via module \refmodule{os}).}  This module provides access to operating system functionality that isstandardized by the C Standard and the \POSIX{} standard (a thinlydisguised \UNIX{} interface). \strong{Do not import this module directly.}  Instead, import themodule \refmodule{os}, which provides a \emph{portable} version of thisinterface.  On \UNIX, the \refmodule{os} module provides a superset ofthe \module{posix} interface.  On non-\UNIX{} operating systems the\module{posix} module is not available, but a subset is alwaysavailable through the \refmodule{os} interface.  Once \refmodule{os} isimported, there is \emph{no} performance penalty in using it insteadof \module{posix}.  In addition, \refmodule{os}\refstmodindex{os}provides some additional functionality, such as automatically calling\function{putenv()} when an entry in \code{os.environ} is changed. The descriptions below are very terse; refer to the corresponding\UNIX{} manual (or \POSIX{} documentation) entry for more information.Arguments called \var{path} refer to a pathname given as a string. Errors are reported as exceptions; the usual exceptions are given fortype errors, while errors reported by the system calls raise\exception{error} (a synonym for the standard exception\exception{OSError}), described below.  \subsection{Large File Support \label{posix-large-files}}\sectionauthor{Steve Clift}{clift@mail.anacapa.net}\index{large files}\index{file!large files}  Several operating systems (including AIX, HPUX, Irix and Solaris)provide support for files that are larger than 2 Gb from a Cprogramming model where \ctype{int} and \ctype{long} are 32-bitvalues. This is typically accomplished by defining the relevant sizeand offset types as 64-bit values. Such files are sometimes referredto as \dfn{large files}. Large file support is enabled in Python when the size of an\ctype{off_t} is larger than a \ctype{long} and the \ctype{long long}type is available and is at least as large as an \ctype{off_t}. Pythonlongs are then used to represent file sizes, offsets and other valuesthat can exceed the range of a Python int. It may be necessary toconfigure and compile Python with certain compiler flags to enablethis mode. For example, it is enabled by default with recent versionsof Irix, but with Solaris 2.6 and 2.7 you need to do something like: \begin{verbatim}CFLAGS="`getconf LFS_CFLAGS`" OPT="-g -O2 $CFLAGS" \        ./configure\end{verbatim} % $ <-- bow to font-lock On large-file-capable Linux systems, this might work: \begin{verbatim}CFLAGS='-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' OPT="-g -O2 $CFLAGS" \        ./configure\end{verbatim} % $ <-- bow to font-lock  \subsection{Module Contents \label{posix-contents}}  Module \module{posix} defines the following data item: \begin{datadesc}{environ}A dictionary representing the string environment at the time theinterpreter was started. For example, \code{environ['HOME']} is thepathname of your home directory, equivalent to\code{getenv("HOME")} in C. Modifying this dictionary does not affect the string environmentpassed on by \function{execv()}, \function{popen()} or\function{system()}; if you need to change the environment, pass\code{environ} to \function{execve()} or add variable assignments andexport statements to the command string for \function{system()} or\function{popen()}. \note{The \refmodule{os} module provides an alternateimplementation of \code{environ} which updates the environment onmodification.  Note also that updating \code{os.environ} will renderthis dictionary obsolete.  Use of the \refmodule{os} module version ofthis is recommended over direct access to the \module{posix} module.}\end{datadesc} Additional contents of this module should only be accessed via the\refmodule{os} module; refer to the documentation for that module forfurther information.