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()によって渡される文字列環境には影響しません。 環境を変更する必要がある場合は、
environ
を execve()に渡すか、変数の割り当てを追加して、 system()またはのコマンド文字列にステートメントをエクスポートします。 popen()。バージョン3.2で変更: Unixでは、キーと値はバイトです。
ノート
os モジュールは、変更時に環境を更新する
environ
の代替実装を提供します。 os.environ を更新すると、この辞書が廃止されることにも注意してください。 posix モジュールに直接アクセスするよりも、 os モジュールバージョンを使用することをお勧めします。