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