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

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

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


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

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

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

大きなファイルのサポート

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

off_tのサイズが long より大きく、 long long が少なくとも [と同じ大きさの場合、Pythonでラージファイルサポートが有効になります。 X159X]。 このモードを有効にするには、特定のコンパイラフラグを使用して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

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

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

posix.environ

インタプリタが開始されたときの文字列環境を表す辞書。 キーと値は、Unixではバイト、Windowsではstrです。 たとえば、environ[b'HOME'](Windowsではenviron['HOME'])は、ホームディレクトリのパス名であり、Cのgetenv("HOME")に相当します。

この辞書を変更しても、 execv()popen()、または system()によって渡される文字列環境には影響しません。 環境を変更する必要がある場合は、environexecve()に渡すか、変数の割り当てを追加して、 system()またはのコマンド文字列にステートメントをエクスポートします。 popen()

バージョン3.2で変更: Unixでは、キーと値はバイトです。

ノート

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