36.1. posix —最も一般的なPOSIXシステムコール—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/2.7/library/posix
移動先:案内検索

36.1。 posix —最も一般的なPOSIXシステムコール

このモジュールは、C標準およびPOSIX標準(薄く偽装されたUnixインターフェイス)によって標準化されたオペレーティングシステム機能へのアクセスを提供します。

このモジュールを直接インポートしないでください。代わりに、このインターフェイスのポータブルバージョンを提供するモジュール os をインポートしてください。 Unixでは、 os モジュールは posix インターフェースのスーパーセットを提供します。 Unix以外のオペレーティングシステムでは、 posix モジュールは使用できませんが、サブセットは os インターフェイスから常に使用できます。 os がインポートされると、 posix の代わりに no パフォーマンスペナルティが発生します。 さらに、 os は、os.environのエントリが変更されたときに、 putenv()を自動的に呼び出すなど、いくつかの追加機能を提供します。

エラーは例外として報告されます。 タイプエラーには通常の例外がありますが、システムコールによって報告されたエラーはOSErrorを発生させます。

36.1.1。 ラージファイルサポート

いくつかのオペレーティングシステム(AIX、HP-UX、Irix、およびSolarisを含む)は、intおよびlongが32ビット値であるCプログラミングモデルからの2GBを超えるファイルのサポートを提供します。 これは通常、関連するサイズとオフセットタイプを64ビット値として定義することで実現されます。 このようなファイルは、ラージファイルと呼ばれることもあります。

off_tのサイズがlongより大きく、long longタイプが使用可能で、少なくともoff_t。 次に、Python longは、Python intの範囲を超える可能性のあるファイルサイズ、オフセット、およびその他の値を表すために使用されます。 このモードを有効にするには、特定のコンパイラフラグを使用して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()によって渡される文字列環境には影響しません。 環境を変更する必要がある場合は、environexecve()に渡すか、変数の割り当てを追加して、 system()またはのコマンド文字列にステートメントをエクスポートします。 popen()

ノート

os モジュールは、変更時に環境を更新するenvironの代替実装を提供します。 os.environを更新すると、この辞書が廃止されることにも注意してください。 posix モジュールに直接アクセスするよりも、 os モジュールバージョンを使用することをお勧めします。