"posix" --- 最も一般的な POSIX システムコール群
***********************************************

======================================================================

このモジュールはオペレーティングシステムの機能のうち、C 言語標準および
(Unix インターフェースをほんの少し隠蔽した) POSIX 標準で標準化されてい
る機能に対するアクセス機構を提供します。

Availability: Unix.

**Do not import this module directly.**  Instead, import the module
"os", which provides a *portable* version of this interface.  On Unix,
the "os" module provides a superset of the "posix" interface.  On non-
Unix operating systems the "posix" module is not available, but a
subset is always available through the "os" interface.  Once "os" is
imported, there is *no* performance penalty in using it instead of
"posix".  In addition, "os" provides some additional functionality,
such as automatically calling "putenv()" when an entry in "os.environ"
is changed.

エラーは例外として報告されます; よくある例外は型エラーです。一方、シス
テムコールから報告されたエラーは以下に述べるように "OSError" を送出し
ます。


ラージファイルのサポート
========================

いくつかのオペレーティングシステム (AIX および Solaris が含まれます)
は、 int および long を 32 ビット値とする C プログラムモデルで 2GB を
超えるサイズのファイルのサポートを提供しています。このサポートは典型的
には関連するサイズとオフセットの組合せを 64-bit 値として定義することで
実現しています。このようなファイルは時にラージファイル (*large files*)
と呼ばれます。

Python では、 "off_t" のサイズが long より大きく、かつ long long が少
なくとも "off_t" と同じくらい大きなサイズであるとき、ラージファイルの
サポートが有効になります。 この場合、ファイルのサイズ、オフセットおよ
び Python の通常整数型の範囲を超えるような値の表現には Python の長整数
型が使われます。 このモードを有効にするのに、 **configure** で Python
のコンパイルに特定のコンパイルフラグを必要とするかもしれません。 例え
ば、Solaris 2.6 および 2.7 では、以下のようにする必要があります:

   CFLAGS="`getconf LFS_CFLAGS`" OPT="-g -O2 $CFLAGS" \
           ./configure

ラージファイル対応の Linux システムでは、以下のようにすれば良いでしょ
う:

   CFLAGS='-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' OPT="-g -O2 $CFLAGS" \
           ./configure


注目すべきモジュールの内容
==========================

In addition to many functions described in the "os" module
documentation, "posix" defines the following data item:

posix.environ

   インタプリタが起動したときの環境を表す文字列辞書です。キーと値は
   Unix ではバイト列、 Windows では文字列です。例えば、
   "environ[b'HOME']" (Windows では "environ['HOME']") はホームディレ
   クトリのパス名で、 C の "getenv("HOME")" と同じ値です。

   この辞書を編集しても、 "execv()" 、 "popen()" 、 "system()" で渡さ
   れた環境変数文字列には影響は与えません; 環境変数を変更したい場合は
   、 "environ" を "execve()" に渡すか、変数への代入文と export 文を
   "system()" や "popen()" に渡すコマンド文字列に追加してください。

   バージョン 3.2 で変更: Unix ではキーと値はバイト列になりました。

   注釈:

     The "os" module provides an alternate implementation of "environ"
     which updates the environment on modification. Note also that
     updating "os.environ" will render this dictionary obsolete. Use
     of the "os" module version of this is recommended over direct
     access to the "posix" module.
