mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	parameters (like \UNIX) are commonly entered using an empty group to separate the markup from a following inter-word space; this is not needed when the next character is punctuation, or the markup is the last thing in the enclosing group. These cases were marked inconsistently; the empty group is now *only* used when needed.
		
			
				
	
	
		
			97 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
\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 is
 | 
						|
standardized by the C Standard and the \POSIX{} standard (a thinly
 | 
						|
disguised \UNIX{} interface).
 | 
						|
 | 
						|
\strong{Do not import this module directly.}  Instead, import the
 | 
						|
module \refmodule{os}, which provides a \emph{portable} version of this
 | 
						|
interface.  On \UNIX, the \refmodule{os} module provides a superset of
 | 
						|
the \module{posix} interface.  On non-\UNIX{} operating systems the
 | 
						|
\module{posix} module is not available, but a subset is always
 | 
						|
available through the \refmodule{os} interface.  Once \refmodule{os} is
 | 
						|
imported, there is \emph{no} performance penalty in using it instead
 | 
						|
of \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 for
 | 
						|
type 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 C
 | 
						|
programming model where \ctype{int} and \ctype{long} are 32-bit
 | 
						|
values. This is typically accomplished by defining the relevant size
 | 
						|
and offset types as 64-bit values. Such files are sometimes referred
 | 
						|
to 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}. Python
 | 
						|
longs are then used to represent file sizes, offsets and other values
 | 
						|
that can exceed the range of a Python int. It may be necessary to
 | 
						|
configure and compile Python with certain compiler flags to enable
 | 
						|
this mode. For example, it is enabled by default with recent versions
 | 
						|
of 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 the
 | 
						|
interpreter was started. For example, \code{environ['HOME']} is the
 | 
						|
pathname of your home directory, equivalent to
 | 
						|
\code{getenv("HOME")} in C.
 | 
						|
 | 
						|
Modifying this dictionary does not affect the string environment
 | 
						|
passed 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 and
 | 
						|
export statements to the command string for \function{system()} or
 | 
						|
\function{popen()}.
 | 
						|
 | 
						|
\note{The \refmodule{os} module provides an alternate
 | 
						|
implementation of \code{environ} which updates the environment on
 | 
						|
modification.  Note also that updating \code{os.environ} will render
 | 
						|
this dictionary obsolete.  Use of the \refmodule{os} module version of
 | 
						|
this 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 for
 | 
						|
further information.
 |