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


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

このモジュールを直接インポートしないでください。 代わりに、このインターフェースの 移植性のある 版を提供する os モジュールをインポートしてください。 Unix では、os モジュールは posix インターフェースを包含する機能を提供します。 Unix 以外の OS では posix モジュールは利用できませんが、その一部の機能は os インターフェースを通して常に利用できます。 一度 os をインポートすれば、posix の代わりに使っても性能の低下は ありません。 また、os には、os.environ の項目が変更されたときに putenv() を自動的に呼び出すなどの追加機能もあります。

エラーは例外として報告されます。 型の誤りには通常の例外が送出され、システムコールが報告するエラーには OSError が送出されます。

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

いくつかの OS (AIX や Solaris を含みます) では、int と long が 32 ビットの C プログラミングモデルでも、2 GiB を超えるファイルを扱えます。 通常、これはサイズやオフセットに関係する型を 64 ビットとして定義することで実現します。 このようなファイルを ラージファイル と呼ぶことがあります。

Python では、 off_t のサイズが long より大きく、かつ long long が少なくとも off_t と同じくらい大きなサイズであるとき、ラージファイルのサポートが有効になります。 このモードを有効にするのに、 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

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

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

posix.environ

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

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

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

注釈

os モジュールは、変更時に環境変数を更新する別の environ 実装を提供しています。 os.environ を更新すると、この辞書の内容は古くなることにも注意してください。 posix モジュールへ直接アクセスするよりも、os モジュールの実装を使うことを推奨します。