OSDN Git Service

(split) LDP: Release pages with over 80% translations.
[linuxjm/LDP_man-pages.git] / release / man2 / getrlimit.2
1 .\" Hey Emacs! This file is -*- nroff -*- source.
2 .\"
3 .\" Copyright (c) 1992 Drew Eckhardt, March 28, 1992
4 .\" and Copyright (c) 2002, 2004, 2005, 2008, 2010 Michael Kerrisk
5 .\"
6 .\" Permission is granted to make and distribute verbatim copies of this
7 .\" manual provided the copyright notice and this permission notice are
8 .\" preserved on all copies.
9 .\"
10 .\" Permission is granted to copy and distribute modified versions of this
11 .\" manual under the conditions for verbatim copying, provided that the
12 .\" entire resulting derived work is distributed under the terms of a
13 .\" permission notice identical to this one.
14 .\"
15 .\" Since the Linux kernel and libraries are constantly changing, this
16 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
17 .\" responsibility for errors or omissions, or for damages resulting from
18 .\" the use of the information contained herein.  The author(s) may not
19 .\" have taken the same level of care in the production of this manual,
20 .\" which is licensed free of charge, as they might when working
21 .\" professionally.
22 .\"
23 .\" Formatted or processed versions of this manual, if unaccompanied by
24 .\" the source, must acknowledge the copyright and authors of this work.
25 .\"
26 .\" Modified by Michael Haardt <michael@moria.de>
27 .\" Modified 1993-07-23 by Rik Faith <faith@cs.unc.edu>
28 .\" Modified 1996-01-13 by Arnt Gulbrandsen <agulbra@troll.no>
29 .\" Modified 1996-01-22 by aeb, following a remark by
30 .\"          Tigran Aivazian <tigran@sco.com>
31 .\" Modified 1996-04-14 by aeb, following a remark by
32 .\"          Robert Bihlmeyer <robbe@orcus.ping.at>
33 .\" Modified 1996-10-22 by Eric S. Raymond <esr@thyrsus.com>
34 .\" Modified 2001-05-04 by aeb, following a remark by
35 .\"          Håvard Lygre <hklygre@online.no>
36 .\" Modified 2001-04-17 by Michael Kerrisk <mtk.manpages@gmail.com>
37 .\" Modified 2002-06-13 by Michael Kerrisk <mtk.manpages@gmail.com>
38 .\"     Added note on nonstandard behavior when SIGCHLD is ignored.
39 .\" Modified 2002-07-09 by Michael Kerrisk <mtk.manpages@gmail.com>
40 .\"     Enhanced descriptions of 'resource' values
41 .\" Modified 2003-11-28 by aeb, added RLIMIT_CORE
42 .\" Modified 2004-03-26 by aeb, added RLIMIT_AS
43 .\" Modified 2004-06-16 by Michael Kerrisk <mtk.manpages@gmail.com>
44 .\"     Added notes on CAP_SYS_RESOURCE
45 .\"
46 .\" 2004-11-16 -- mtk: the getrlimit.2 page, which formally included
47 .\" coverage of getrusage(2), has been split, so that the latter
48 .\" is now covered in its own getrusage.2.
49 .\"
50 .\" Modified 2004-11-16, mtk: A few other minor changes
51 .\" Modified 2004-11-23, mtk
52 .\"     Added notes on RLIMIT_MEMLOCK, RLIMIT_NPROC, and RLIMIT_RSS
53 .\"             to "CONFORMING TO"
54 .\" Modified 2004-11-25, mtk
55 .\"     Rewrote discussion on RLIMIT_MEMLOCK to incorporate kernel
56 .\"             2.6.9 changes.
57 .\"     Added note on RLIMIT_CPU error in older kernels
58 .\" 2004-11-03, mtk, Added RLIMIT_SIGPENDING
59 .\" 2005-07-13, mtk, documented RLIMIT_MSGQUEUE limit.
60 .\" 2005-07-28, mtk, Added descriptions of RLIMIT_NICE and RLIMIT_RTPRIO
61 .\" 2008-05-07, mtk / Peter Zijlstra, Added description of RLIMIT_RTTIME
62 .\" 2010-11-06, mtk: Added documentation of prlimit()
63 .\"
64 .\"*******************************************************************
65 .\"
66 .\" This file was generated with po4a. Translate the source file.
67 .\"
68 .\"*******************************************************************
69 .TH GETRLIMIT 2 2011\-09\-10 Linux "Linux Programmer's Manual"
70 .SH 名前
71 getrlimit, setrlimit, prlimit \- 資源の制限を取得/設定する
72 .SH 書式
73 \fB#include <sys/time.h>\fP
74 .br
75 \fB#include <sys/resource.h>\fP
76 .sp
77 \fBint getrlimit(int \fP\fIresource\fP\fB, struct rlimit *\fP\fIrlim\fP\fB);\fP
78 .br
79 \fBint setrlimit(int \fP\fIresource\fP\fB, const struct rlimit *\fP\fIrlim\fP\fB);\fP
80 .sp
81 \fBint prlimit(pid_t \fP\fIpid\fP\fB, int \fP\fIresource\fP\fB, const struct rlimit
82 *\fP\fInew_limit\fP\fB,\fP
83 .br
84 \fB struct rlimit *\fP\fIold_limit\fP\fB);\fP
85 .sp
86 .in -4n
87 glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参照):
88 .in
89 .sp
90 \fBprlimit\fP(): _GNU_SOURCE && _FILE_OFFSET_BITS == 64
91 .SH 説明
92 \fBgetrlimit\fP() と \fBsetrlimit\fP() はそれぞれ資源 (resource) の制限
93 (limit) の設定と取得を行う。 各リソースには、それに対応するソフトリミッ
94 トとハードリミットがあり、 \fIrlimit\fP 構造体で定義される:
95 .PP
96 .in +4n
97 .nf
98 struct rlimit {
99     rlim_t rlim_cur;  /* ソフトリミット */
100     rlim_t rlim_max;  /* ハードリミット
101                          (rlim_cur より小さくない) */
102 };
103
104 .fi
105 .in
106 ソフトリミットは、カーネルが対応するリソースに対して課す制限値である。 ハードリミットはソフトリミットの上限として働く。
107 特権を持たないプロセスは、ソフトリミットの値を 0 からハードリミットの範囲に設定することと、 ハードリミットを下げることのみができる
108 (一度下げたハードリミットは上げられない)。 特権プロセス (Linux では \fBCAP_SYS_RESOURCE\fP ケーパビリティ
109 (capability) を持つプロセス) は ソフトリミットとハードリミットを自由に変更できる。
110 .PP
111 値 \fBRLIM_INFINITY\fP はリソースに制限がないことを表す (この値は \fBgetrlimit\fP()  が返す構造体と
112 \fBsetrlimit\fP()  に渡す構造体の両方で使用される)。
113 .PP
114 \fIresource\fP 引き数は次のいずれか 1 つである。
115 .TP 
116 \fBRLIMIT_AS\fP
117 .\" since 2.0.27 / 2.1.12
118 プロセスの仮想メモリ (アドレス空間) の最大サイズ (バイト単位)。 この制限は \fBbrk\fP(2), \fBmmap\fP(2),
119 \fBmremap\fP(2)  の呼び出しに影響し、この制限を超えた場合は エラー \fBENOMEM\fP で失敗する。 また自動的なスタック拡張にも失敗する
120 (さらに \fBsigaltstack\fP(2)  を使った代替スタックを利用可能にしていなかった場合には、 \fBSIGSEGV\fP を生成してそのプロセスを
121 kill する)。 この値は \fIlong\fP 型なので、32 ビットの \fIlong\fP 型を持つマシンでは、 この制限は最大で 2 GiB
122 になるか、この資源が無制限になる。
123 .TP 
124 \fBRLIMIT_CORE\fP
125 \fIcore\fP ファイルの最大サイズ。 0 の場合、core ファイルは生成されない。 0 以外の場合、このサイズより大きいダンプは切り詰められる。
126 .TP 
127 \fBRLIMIT_CPU\fP
128 CPU 時間の上限 (秒数)。プロセスがソフトリミットに達した場合に、
129 \fBSIGXCPU\fP シグナルを送る。このシグナルに対するデフォルトの動作は、
130 プロセスの終了である。ただし、シグナルをキャッチして、ハンドラがメイン
131 プログラムに制御を返すこともできる。プロセスが CPU 時間を使い続けた
132 場合は、ハードリミットに達するまで 1 秒毎にプロセスに \fBSIGXCPU\fP を送り、
133 ハードリミットに達すると \fBSIGKILL\fP を送る。
134 (ソフトリミットを超過したときの動作は、 Linux における動作である。ソフ
135 トリミットを超えて CPU 時間を使い続けるプロセスの扱い方についての実装は
136 変化してきている。 このシグナルをキャッチする必要のある 移植性を考えた
137 アプリケーションでは、 最初に \fBSIGXCPU\fP を受け取った時点で正しく終了
138 すべきである。)
139 .TP 
140 \fBRLIMIT_DATA\fP
141 プロセスのデータセグメント (初期化されたデータ・初期化されていないデータ・ヒープ) の最大値。 このリミットは \fBbrk\fP(2)  と
142 \fBsbrk\fP(2)  の呼び出しに影響する。 これらの関数は、このリソースのソフトリミットに達すると、 エラー \fBENOMEM\fP で失敗する。
143 .TP 
144 \fBRLIMIT_FSIZE\fP
145 プロセスが作成できるファイルサイズの最大値。 このサイズを超えてファイルを拡張すると、 \fBSIGXFSZ\fP シグナルを送る。
146 デフォルトでは、このシグナルはプロセスを終了する。 プロセスをキャッチすることもできるが、 関連するシステムコール (\fBwrite\fP(2),
147 \fBtruncate\fP(2)  など) はエラー \fBEFBIG\fP で失敗する。
148 .TP 
149 \fBRLIMIT_LOCKS\fP (初期の Linux 2.4 のみ)
150 .\" to be precise: Linux 2.4.0-test9; no longer in 2.4.25 / 2.5.65
151 このプロセスが実行できる \fBflock\fP(2)  ロック数と \fBfcntl\fP(2)  リース数の合計値を制限する。
152 .TP 
153 \fBRLIMIT_MEMLOCK\fP
154 RAM 内にロックできるメモリの最大バイト数。 実際には、この制限はシステムページサイズの最も近い倍数に 切り捨てて丸められる。 この制限は
155 \fBmlock\fP(2), \fBmlockall\fP(2), \fBmmap\fP(2)  の \fBMAP_LOCKED\fP 操作に影響する。 Linux
156 2.6.9 以降では \fBshmctl\fP(2)  \fBSHM_LOCK\fP 操作にも影響する。 この操作は呼び出し元プロセスの実 (real) ユーザー
157 ID にロックされる 共有メモリセグメント (\fBshmget\fP(2)  を参照) の合計バイト数の最大値を設定する。 \fBshmctl\fP(2)
158 \fBSHM_LOCK\fP によるロックは、 \fBmlock\fP(2), \fBmlockall\fP(2), \fBmmap\fP(2)  の
159 \fBMAP_LOCKED\fP によって確立されるプロセス毎のメモリロックとは分けて数える。 1 つのプロセスはこの制限までのバイトをロックできる。
160 この制限には 2 つの種類がある。 2.6.9 より前の Linux カーネル では、
161 この制限は特権プロセスによってロックされるメモリの合計を制御していた。 Linux 2.6.9
162 以降では、特権プロセスがロックするメモリの合計に制限はなく、 代わりにこの制限は非特権プロセスがロックするメモリの合計に 適用されるようになった。
163 .TP 
164 \fBRLIMIT_MSGQUEUE\fP (Linux 2.6.8 以降)
165 呼び出し元プロセスの実ユーザー ID に対して、 POSIX メッセージキューのために確保できるバイト数の制限を指定する。 この制限は
166 \fBmq_open\fP(3)  に対して適用される。 ユーザが作成した各々のメッセージキューのバイト数は
167 以下の式により計算され、(そのキューが削除されるまでの間)  この制限の計算対象に含められる。
168 .nf
169
170     bytes = attr.mq_maxmsg * sizeof(struct msg_msg *) +
171             attr.mq_maxmsg * attr.mq_msgsize
172
173 .fi
174 ここで \fIattr\fP は \fImq_attr\fP 構造体であり、 \fBmq_open\fP(3)  の第 4 引き数として指定される。
175
176 \fIsizeof(struct msg_msg *)\fP (Linux/i386 では 4 バイト) を含む最初の加数は、 ユーザーが長さ 0
177 のメッセージを無制限に作れないこと保証している (このようなメッセージであっても、 記録のためのオーバーヘッドでシステムメモリを消費する)。
178 .TP 
179 \fBRLIMIT_NICE\fP (Linux 2.6.12 以降, 下記の「バグ」の節も参照)
180 \fBsetpriority\fP(2)  や \fBnice\fP(2)  を使って引き上げられるプロセスの nice 値の上限を指定する。 nice
181 値の実際の上限は \fI20\ \-\ rlim_cur\fP で計算される (このような変な状況は、リソース制限値として負の数を指定できないため
182 発生する。通常、負の値は特別な意味を持っているからである。 例えば、通常は \fBRLIM_INFINITY\fP の値は \-1 である)。
183 .TP 
184 \fBRLIMIT_NOFILE\fP
185 このプロセスがオープンできるファイルディスクリプタ数の最大値より 1 大きい値を指定する。 (\fBopen\fP(2), \fBpipe\fP(2),
186 \fBdup\fP(2)  などにより) この上限を超えようとした場合、エラー \fBEMFILE\fP が発生する (歴史的に、BSD ではこの上限は
187 \fBRLIMIT_OFILE\fP という名前となっている)。
188 .TP 
189 \fBRLIMIT_NPROC\fP
190 呼び出したプロセスの実ユーザー ID で作成できる最大プロセス数 (より正確には Linux ではスレッド数)。 この上限に達すると、
191 \fBfork\fP(2)  はエラー \fBEAGAIN\fP で失敗する。
192 .TP 
193 \fBRLIMIT_RSS\fP
194 .\" As at kernel 2.6.12, this limit still does nothing in 2.6 though
195 .\" talk of making it do something has surfaced from time to time in LKML
196 .\"       -- MTK, Jul 05
197 プロセスの resident set (RAM 上に存在する仮想ページの数) の 上限を (ページ数で) 指定する。 この制限は 2.4.30
198 より前でしか影響がなく、 \fBmadvise\fP(2)  に \fBMADV_WILLNEED\fP を指定した関数コールにしか影響しない。
199 .TP 
200 \fBRLIMIT_RTPRIO\fP (Linux 2.6.12 以降, バグの節も参照)
201 \fBsched_setscheduler\fP(2)  や \fBsched_setparam\fP(2)
202 を使って設定できる、そのプロセスのリアルタイム優先度の上限を指定する。
203 .TP 
204 \fBRLIMIT_RTTIME\fP (Linux 2.6.25 以降)
205 リアルタイムスケジューリング方針でスケジューリングされるプロセスが ブロッキング型のシステムコールを呼び出さずに消費することのできる CPU
206 時間の合計についての上限を (マイクロ秒単位で) 指定する。 この上限の目的のため、プロセスがブロッキング型のシステムコールを 呼び出す度に、消費された
207 CPU 時間のカウントは 0 にリセットされる。 プロセスが CPU を使い続けようとしたが他のプロセスに置き換えられた (preempted)
208 場合や、そのプロセスのタイムスライスが満了した場合、 そのプロセスが \fBsched_yield\fP(2)  を呼び出した場合は、CPU
209 時間のカウントはリセットされない。
210
211 ソフトリミットに達すると、そのプロセスに \fBSIGXCPU\fP シグナルが送られる。そのプロセスがこのシグナルを捕捉するか 無視して、CPU
212 時間を消費し続けた場合には、 ハードリミットに達するまで 1 秒に 1 回 \fBSIGXCPU\fP が生成され続けることになる。
213 ハードリミットに達した時点で、そのプロセスには \fBSIGKILL\fP シグナルが送られる。
214
215 この上限を意図的に使用するのは、暴走したリアルタイムプロセスを 停止して、システムが動かなくなるのを避ける場合である。
216 .TP 
217 \fBRLIMIT_SIGPENDING\fP (Linux 2.6.8 以降)
218 .\" This replaces the /proc/sys/kernel/rtsig-max system-wide limit
219 .\" that was present in kernels <= 2.6.7.  MTK Dec 04
220 呼び出し元プロセスの実ユーザー ID に対して キューに入れられるシグナルの
221 数の制限を指定する。この制限をチェックするため、標準シグナルとリアルタ
222 イムシグナルの両方がカウントされる。しかし、この制限は \fBsigqueue\fP(3)
223 に対してしか強制されず、 \fBkill\fP(2) 使うことで、そのプロセスに対してま
224 だキューに入れられていない シグナルのインスタンスをキューに入れることが
225 できる。
226 .TP 
227 \fBRLIMIT_STACK\fP
228 プロセススタックの最大サイズをバイト単位で指定する。 この上限に達すると、 \fBSIGSEGV\fP シグナルが生成される。 このシグナルを扱うためには、
229 プロセスは代りのシグナルスタック (\fBsigaltstack\fP(2))  を使用しなければならない。
230
231 Linux 2.6.23 以降では、この制限はプロセスのコマンドライン引き数と環境変数
232 に使用される空間の合計サイズの上限の決定にも使用される。詳細については \fBexecve\fP(2)  を参照。
233 .SS prlimit()
234 .\" commit c022a0acad534fd5f5d5f17280f6d4d135e74e81
235 .\" Author: Jiri Slaby <jslaby@suse.cz>
236 .\" Date:   Tue May 4 18:03:50 2010 +0200
237 The Linux\-specific \fBprlimit\fP()  system call combines and extends the
238 functionality of \fBsetrlimit\fP()  and \fBgetrlimit\fP().  It can be used to both
239 set and get the resource limits of an arbitrary process.
240
241 The \fIresource\fP argument has the same meaning as for \fBsetrlimit\fP()  and
242 \fBgetrlimit\fP().
243
244 If the \fInew_limit\fP argument is a not NULL, then the \fIrlimit\fP structure to
245 which it points is used to set new values for the soft and hard limits for
246 \fIresource\fP.  If the \fIold_limit\fP argument is a not NULL, then a successful
247 call to \fBprlimit\fP()  places the previous soft and hard limits for
248 \fIresource\fP in the \fIrlimit\fP structure pointed to by \fIold_limit\fP.
249
250 .\" FIXME this permission check is strange
251 .\" Asked about this on LKML, 7 Nov 2010
252 .\"     "Inconsistent credential checking in prlimit() syscall"
253 The \fIpid\fP argument specifies the ID of the process on which the call is to
254 operate.  If \fIpid\fP is 0, then the call applies to the calling process.  To
255 set or get the resources of a process other than itself, the caller must
256 have the \fBCAP_SYS_RESOURCE\fP capability, or the real, effective, and saved
257 set user IDs of the target process must match the real user ID of the caller
258 \fIand\fP the real, effective, and saved set group IDs of the target process
259 must match the real group ID of the caller.
260 .SH 返り値
261 成功した場合、これらのシステムコールは 0 を返す。
262 エラーの場合は \-1 が返され、 \fIerrno\fP が適切に設定される。
263 .SH エラー
264 .TP 
265 \fBEFAULT\fP
266 場所を指すポインタ引き数がアクセス可能なアドレス空間外を指している。
267 .TP 
268 \fBEINVAL\fP
269 \fIresource\fP で指定された値が有効でない。
270 または、 \fBsetrlimit\fP() や \fBprlimit\fP() で、
271 \fIrlim\->rlim_cur\fP が \fIrlim\->rlim_max\fP よりも大きかった。
272 .TP 
273 \fBEPERM\fP
274 特権のないプロセスがハードリミットを上げようとした。
275 これを行うためには \fBCAP_SYS_RESOURCE\fP ケーパビリティが必要である。
276 または、特権のないプロセスが \fBRLIMIT_NOFILE\fP ハードリミットを
277 現在のカーネルの最大値 (\fBNR_OPEN\fP) 以上に増やそうとした。
278 または、呼び出したプロセスが \fIpid\fP で指定されたプロセスのリミットを
279 設定する許可を持っていなかった。
280 .TP 
281 \fBESRCH\fP
282 Could not find a process with the ID specified in \fIpid\fP.
283 .SH バージョン
284 The \fBprlimit\fP()  system call is available since Linux 2.6.36.  Library
285 support is available since glibc 2.13.
286 .SH 準拠
287 \fBgetrlimit\fP(), \fBsetrlimit\fP(): SVr4, 4.3BSD, POSIX.1\-2001.
288 .br
289 \fBprlimit\fP(): Linux\-specific.
290
291 \fBRLIMIT_MEMLOCK\fP と \fBRLIMIT_NPROC\fP は BSD から派生し、
292 POSIX.1\-2001 には指定されていない。
293 これらは BSD 系と Linux に存在するが、他の実装は少ない。
294 \fBRLIMIT_RSS\fP は BSD から派生し、POSIX.1\-2001 には指定されていない。
295 それにも関わらず多くの実装で存在する。
296 \fBRLIMIT_MSGQUEUE\fP, \fBRLIMIT_NICE\fP, \fBRLIMIT_RTPRIO\fP, \fBRLIMIT_RTTIME\fP,
297 \fBRLIMIT_SIGPENDING\fP は Linux 固有のものである。
298 .SH 注意
299 \fBfork\fP(2)  で作成された作成された子プロセスは、 親プロセスのリソース制限を継承する。 \fBexecve\fP(2)
300 の前後でリソース制限は保存される。
301
302 シェルのリソース制限は、シェルの組み込みコマンドである \fIulimit\fP (\fBcsh\fP(1)  では \fIlimit )\fP
303 を使って設定することができる。 このシェルのリソース制限は、コマンドを実行してシェルが生成するプロセス に引き継がれる。
304
305 古いシステムでは、 \fBsetrlimit\fP()  と同様の目的を持つ関数 \fBvlimit\fP()  が提供されていた。 後方互換性のため、glibc
306 でも \fBvlimit\fP()  を提供している。 全ての新しいアプリケーションでは、 \fBsetrlimit\fP()  を使用すべきである。
307 .SH 例
308 The program below demonstrates the use of \fBprlimit\fP().
309 .PP
310 .nf
311 #define _GNU_SOURCE
312 #define _FILE_OFFSET_BITS 64
313 #include <stdio.h>
314 #include <time.h>
315 #include <stdlib.h>
316 #include <unistd.h>
317 #include <sys/resource.h>
318
319 #define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \e
320                         } while (0)
321
322 int
323 main(int argc, char *argv[])
324 {
325     struct rlimit old, new;
326     struct rlimit *newp;
327     pid_t pid;
328
329     if (!(argc == 2 || argc == 4)) {
330         fprintf(stderr, "Usage: %s <pid> [<new\-soft\-limit> "
331                 "<new\-hard\-limit>]\en", argv[0]);
332         exit(EXIT_FAILURE);
333     }
334
335     pid = atoi(argv[1]);        /* PID of target process */
336
337     newp = NULL;
338     if (argc == 4) {
339         new.rlim_cur = atoi(argv[2]);
340         new.rlim_max = atoi(argv[3]);
341         newp = &new;
342     }
343
344     /* Set CPU time limit of target process; retrieve and display
345        previous limit */
346
347     if (prlimit(pid, RLIMIT_CPU, newp, &old) == \-1)
348         errExit("prlimit\-1");
349     printf("Previous limits: soft=%lld; hard=%lld\en",
350             (long long) old.rlim_cur, (long long) old.rlim_max);
351
352     /* Retrieve and display new CPU time limit */
353
354     if (prlimit(pid, RLIMIT_CPU, NULL, &old) == \-1)
355         errExit("prlimit\-2");
356     printf("New limits: soft=%lld; hard=%lld\en",
357             (long long) old.rlim_cur, (long long) old.rlim_max);
358
359     exit(EXIT_FAILURE);
360 }
361 .fi
362 .SH バグ
363 .\" FIXME prlimit() does not suffer
364 .\" https://bugzilla.kernel.org/show_bug.cgi?id=5042
365 .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=12201
366 以前の Linux カーネルでは、プロセスがソフトまたはハード \fBRLIMIT_CPU\fP リミットに達した場合に送られる \fBSIGXCPU\fP と
367 \fBSIGKILL\fP シグナルが、本来送られるべき時点の 1 (CPU) 秒後に送られてしまう。 これはカーネル 2.6.8 で修正された。
368
369 .\" see http://marc.theaimsgroup.com/?l=linux-kernel&m=114008066530167&w=2
370 2.6.17 より前の 2.6.x カーネルでは、 \fBRLIMIT_CPU\fP リミットが 0 の場合、 (\fBRLIM_INFINITY\fP
371 と同じように) 「制限なし」と間違って解釈されていた。 Linux 2.6.17 以降では、リミットを 0 に設定した場合にも
372 効果を持つようになっているが、実際にはリミットの値は 1 秒となる。
373
374 カーネル 2.6.12 には、 \fBRLIMIT_RTPRIO\fP が動作しないというバグがある。この問題はカーネル 2.6.13 で修正されている。
375
376 .\" see http://marc.theaimsgroup.com/?l=linux-kernel&m=112256338703880&w=2
377 カーネル 2.6.12 では、 \fBgetpriority\fP(2)  と \fBRLIMIT_NICE\fP
378 が返す優先度の範囲が一つずれていた。このため、nice 値の実際の上限が \fI19\ \-\ rlim_cur\fP
379 になってしまうという影響があった。これはカーネル 2.6.13 で修正された。
380
381 2.4.22 より前のカーネルでは、 \fIrlim\->rlim_cur\fP が \fIrlim\->rlim_max\fP より大きかった場合、
382 \fBsetrlimit\fP()  での \fBEINVAL\fP エラーを検出できない。
383 .SH 関連項目
384 \fBdup\fP(2), \fBfcntl\fP(2), \fBfork\fP(2), \fBgetrusage\fP(2), \fBmlock\fP(2),
385 \fBmmap\fP(2), \fBopen\fP(2), \fBquotactl\fP(2), \fBsbrk\fP(2), \fBshmctl\fP(2),
386 \fBmalloc\fP(3), \fBsigqueue\fP(3), \fBulimit\fP(3), \fBcore\fP(5), \fBcapabilities\fP(7),
387 \fBsignal\fP(7)
388 .SH この文書について
389 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.40 の一部
390 である。プロジェクトの説明とバグ報告に関する情報は
391 http://www.kernel.org/doc/man\-pages/ に書かれている。