(PHP 4, PHP 5)
posix_getrlimit — システムリソース制限に関する情報を返す
posix_getrlimit() は、 現在のリソースにおけるソフトリミットおよびハードリミットを配列で返します。
各リソースには、それぞれソフトリミットとハードリミットがあります。 ソフトリミットとは、そのリソースに対してカーネルが課す制限値のことです。 ハードリミットとは、ソフトリミットの上限値のことです。 特権を持たないプロセスは、ソフトリミットの値を 0 からハードリミット値の間で設定することが可能です。 また、ハードリミットの値を下げることができますが、 いったん下げた値を再び上げることはできません。
各リソースに関する制限値を含む連想配列を返します。 個々のリミット値には、ソフトリミットとハードリミットがあります。
| 制限の名前 | 制限についての説明 |
|---|---|
| core | コアファイルの最大サイズ。0 の場合はコアファイルを作成しません。 コアファイルのサイズがこの値を超えると、 このサイズまで切り詰められます。 |
| totalmem | プロセスのメモリの最大サイズを表すバイト数。 |
| virtualmem | プロセスの仮想メモリの最大サイズを表すバイト数。 |
| data | プロセスのデータセグメントの最大サイズを表すバイト数。 |
| stack | プロセスのスタックの最大サイズを表すバイト数。 |
| rss | RAM 上の仮想ページの最大数。 |
| maxproc | 呼び出し元のプロセスの実ユーザ ID で作成できるプロセスの最大数。 |
| memlock | RAM 内にロックできるメモリの最大バイト数。 |
| cpu | そのプロセスが使用できる CPU 時間。 |
| filesize | そのプロセスが使用できるデータセグメントの最大サイズを表すバイト数。 |
| openfiles | オープンできるファイル記述子の最大値よりひとつ大きい値。 |
例1 posix_getrlimit() の使用例
<?php
$limits = posix_getrlimit();
print_r($limits);
?>
上の例の出力は、 たとえば以下のようになります。
Array
(
[soft core] => 0
[hard core] => unlimited
[soft data] => unlimited
[hard data] => unlimited
[soft stack] => 8388608
[hard stack] => unlimited
[soft totalmem] => unlimited
[hard totalmem] => unlimited
[soft rss] => unlimited
[hard rss] => unlimited
[soft maxproc] => unlimited
[hard maxproc] => unlimited
[soft memlock] => unlimited
[hard memlock] => unlimited
[soft cpu] => unlimited
[hard cpu] => unlimited
[soft filesize] => unlimited
[hard filesize] => unlimited
[soft openfiles] => 1024
[hard openfiles] => 1024
)
注意: この関数は POSIX 関数ではなく、BSD および System V のシステムで共通な関数です。 使用するシステムがこの関数をサポートしていない場合は、 PHP のコンパイル時にこの関数は組み込まれません。 この関数が使用可能かどうかを調べるには、function_exists() を使用します。