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

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

**このモジュールを直接インポートしてはいけません。** その代わりに、こ
のインターフェースの *ポータブル* 版である "os" モジュールをインポート
してください。 Unix では、"os" モジュールは "posix" インターフェースの
スーパーセットを提供しています。非 Unix オペレーティングシステムでは、
"posix" モジュールは利用できませんが、その一部分は "os" インターフェー
スを通して常に利用可能です。一度 "os" をインポートし "posix" の代わり
にそれを使えば、パフォーマンス上の代償は *ありません* 。加えて "os" は
、 "os.environ" の要素が変更されたときに "putenv()" を呼び出すなどの追
加の機能も提供します。

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


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

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

Python では、 "off_t" のサイズが "long" より大きく、かつ "long long"
型を利用することができて、少なくとも "off_t" 型と同じくらい大きなサイ
ズである場合、ラージファイルのサポートが有効になります。この場合、ファ
イルのサイズ、オフセットおよび Python の通常整数型の範囲を超えるような
値の表現には Python の長整数型が使われます。このモードを有効にするのに
、 **configure** で Python のコンパイルに特定のコンパイルフラグを必要
とするかもしれません。例えば、ラージファイルのサポートは Irix の最近の
バージョンでは標準で有効ですが、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


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

"os" モジュールのドキュメントで説明されている多数の関数に加え、
"posix" では以下のデータ項目を定義しています:

posix.environ

   インタプリタが起動した時点の環境変数文字列を表現する辞書です。例え
   ば、 "environ['HOME']" はホームディレクトリのパス名で、C 言語の
   "getenv("HOME")" と等価です。

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

   注釈: "os" モジュールでは、もう一つの "environ" 実装を提供してお
     り、環 境変数が変更された場合、その内容を更新するようになっていま
     す。 "os.environ" を更新した場合、この辞書は古い内容を表している
     ことに なってしまうので、このことにも注意してください。 "posix"
     モジュー ル版を直接アクセスするよりも、 "os" モジュール版を使う方
     が推奨さ れています。
