posix
--- 最も一般的な POSIX システムコール群¶
このモジュールはオペレーティングシステムの機能のうち、C 言語標準および (Unix インターフェースをほんの少し隠蔽した) POSIX 標準で標準化されている機能に対するアクセス機構を提供します。
Availability: Unix.
このモジュールを直接インポートしてはいけません。 その代わりに、このインターフェースの ポータブル 版である os
モジュールをインポートしてください。 Unix では、os
モジュールは posix
インターフェースのスーパーセットを提供しています。非 Unix オペレーティングシステムでは、 posix
モジュールは利用できませんが、その一部分は os
インターフェースを通して常に利用可能です。一度 os
をインポートし posix
の代わりにそれを使えば、パフォーマンス上の代償は ありません 。加えて os
は、 os.environ
の要素が変更されたときに putenv()
を呼び出すなどの追加の機能も提供します。
エラーは例外として報告されます; よくある例外は型エラーです。一方、システムコールから報告されたエラーは以下に述べるように 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
注目すべきモジュールの内容¶
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
モジュールでは、もう一つのos.environ
実装を提供しており、環境変数が変更された場合、その内容を更新するようになっています。environ
を更新した場合、この辞書は古い内容を表していることになってしまうので、このことにも注意してください。posix
モジュール版を直接アクセスするよりも、os
モジュール版を使う方が推奨されています。