35.1。 posix —最も一般的なPOSIXシステムコール
このモジュールは、C標準およびPOSIX標準(薄く偽装されたUnixインターフェイス)によって標準化されたオペレーティングシステム機能へのアクセスを提供します。
このモジュールを直接インポートしないでください。代わりに、このインターフェイスのポータブルバージョンを提供するモジュール os をインポートしてください。 Unixでは、 os モジュールは posix インターフェースのスーパーセットを提供します。 Unix以外のオペレーティングシステムでは、 posix モジュールは使用できませんが、サブセットは os インターフェイスから常に使用できます。 os がインポートされると、 posix の代わりに no パフォーマンスペナルティが発生します。 さらに、 os は、os.environ
のエントリが変更されたときに、 putenv()を自動的に呼び出すなど、いくつかの追加機能を提供します。
エラーは例外として報告されます。 タイプエラーには通常の例外がありますが、システムコールによって報告されたエラーは OSError を発生させます。
35.1.1。 ラージファイルサポート
いくつかのオペレーティングシステム(AIX、HP-UX、Irix、およびSolarisを含む)は、int
およびlong
が32ビット値であるCプログラミングモデルからの2GiBより大きいファイルのサポートを提供します。 これは通常、関連するサイズとオフセットタイプを64ビット値として定義することで実現されます。 このようなファイルは、ラージファイルと呼ばれることもあります。
off_t
のサイズがlong
より大きく、long long
タイプが使用可能で、少なくともoff_t
。 このモードを有効にするには、特定のコンパイラフラグを使用してPythonを構成およびコンパイルする必要がある場合があります。 たとえば、最近のバージョンのIrixではデフォルトで有効になっていますが、Solaris 2.6および2.7では、次のような操作を行う必要があります。
大容量ファイル対応のLinuxシステムでは、これが機能する可能性があります。
35.1.2。 注目すべきモジュールの内容
os モジュールのドキュメントで説明されている多くの関数に加えて、 posix は次のデータ項目を定義します。
- posix.environ
インタプリタが起動したときの文字列環境を表す辞書。 キーと値は、Unixではバイト、Windowsではstrです。 たとえば、
environ[b'HOME']
(Windowsではenviron['HOME']
)は、ホームディレクトリのパス名であり、Cのgetenv("HOME")
に相当します。この辞書を変更しても、 execv()、 popen()、または system()によって渡される文字列環境には影響しません。 環境を変更する必要がある場合は、
environ
を execve()に渡すか、変数の割り当てを追加して、 system()またはのコマンド文字列にステートメントをエクスポートします。 popen()。バージョン3.2で変更: Unixでは、キーと値はバイトです。
ノート
os モジュールは、変更時に環境を更新する
environ
の代替実装を提供します。 os.environ を更新すると、この辞書が廃止されることにも注意してください。 posix モジュールに直接アクセスするよりも、 os モジュールバージョンを使用することをお勧めします。