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


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

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

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

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

Several operating systems (including AIX, HP-UX and Solaris) provide support for files that are larger than 2 GiB from a C programming model where int and 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 large files.

Large file support is enabled in Python when the size of an off_t is larger than a long and the long long is at least as large as an off_t. It may be necessary to configure and compile Python with certain compiler flags to enable this mode. For example, with Solaris 2.6 and 2.7 you need to do something like:

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() で渡された環境変数文字列には影響は与えません; 環境変数を変更したい場合は、 environexecve() に渡すか、変数への代入文と export 文を system()popen() に渡すコマンド文字列に追加してください。

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

注釈

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