mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	 c37b65ee10
			
		
	
	
		c37b65ee10
		
	
	
	
	
		
			
			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.
 |