POSIX(3) USER COMMANDS POSIX(3) NAME POSIX - IEEE 1003.1 名前空間への Perl インタフェース SYNOPSIS use POSIX; use POSIX 'strftime'; DESCRIPTION POSIX モジュールは、すべての (あるいは、ほとんどすべての) 標 準 POSIX 1003.1 識別子へのアクセスを許可するものです。 C で EINTR や O_NDELAY のように #define となっているものは、自動 的に使用している名前空間にエクスポートされます。 すべての関 数が、明示的に要求したときにだけエクスポートされるようになっ ています。 完全に修飾した形式の関数名を使う方が多いでしょう。 利用可能なすべての識別子のリスト (とそれらの意味) を得るには、 1.003.1 の仕様書を入手するか、POSIX.pm モジュールをご覧くだ さい。 EXAMPLES printf "EENTR is %d\n", EINTR; POSIX::setsid(0); $fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644); # 注意: ファイルハンドルではなく、ファイル記述子 NOTE POSIX モジュールは、おそらく、標準配布として提供される Perl モジュールでは、最も複雑なものでしょう。 これは、Perl と C 両方のコードの自動ロード、名前空間アクセス、動的ロードと組み 合わせられます。 知識の宝庫です。 CAVEATS C 依存のいくつかの関数はインプリメントされていません。 そう いった関数を呼ぼうとすると、インプリメントされていないことと、 もしあれば、Perl の同等のものを示すメッセージを表示します。 たとえば、setjmp() を呼ぼうとすると、"setjmp() is C-specific: use eval {} instead" というメッセージが出ることになります。 さらに、悪徳ベンダが 1003.1 準拠を謳っていても、実際そうでな いことがあります。 それらは、PCTS (POSIX 準拠性テスト) をパ スしません。 たとえば、あるベンダのものは、EDEADLK を定義し ていなかったり、open(2) で設定される errno の意味が正しくな かったりします。 Perl では、POSIX の準拠性は確認しません。 つまり、正常に "use POSIX" が行なえたとしても、プログラムを 実行していくうちに、ベンダの手抜きが明らかになって、ICANON マクロがまったく使えないということにもなります。 これは、や はりバグでしょう。 Perl module manpages Last change: Release 5.0 Patchlevel 00 1