OSDN Git Service

長音記号の修正を release に反映
[linuxjm/LDP_man-pages.git] / release / man2 / fork.2
index d4fbc30..9059f76 100644 (file)
@@ -57,7 +57,7 @@
 .\" Updated 2012-05-29, Akihiro MOTOKI <amotoki@gmail.com>
 .\" Updated 2013-05-01, Akihiro MOTOKI <amotoki@gmail.com>
 .\"
-.TH FORK 2 2014\-05\-12 Linux "Linux Programmer's Manual"
+.TH FORK 2 2014\-05\-28 Linux "Linux Programmer's Manual"
 .SH 名前
 fork \- 子プロセスを生成する
 .SH 書式
@@ -72,16 +72,17 @@ fork \- 子プロセスを生成する
 .IP *
 子プロセスの親プロセス ID は、親プロセスのプロセス ID と同じである。
 .IP *
-子プロセスは親プロセスのメモリロック (\fBmlock\fP(2), \fBmlockall\fP(2))  を引き継がない。
+å­\90ã\83\97ã\83­ã\82»ã\82¹ã\81¯è¦ªã\83\97ã\83­ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\83­ã\83\83ã\82¯ (\fBmlock\fP(2), \fBmlockall\fP(2))  ã\82\92å¼\95ã\81\8dç¶\99ã\81\8cã\81ªã\81\84ã\80\82
 .IP *
-プロセスの資源利用量 (\fBgetrusage\fP(2))  と CPU タイムカウンタ (\fBtimes\fP(2))  が、子プロセスでは 0
+プロセスの資源利用量 (\fBgetrusage\fP(2))  と CPU タイムカウンタ (\fBtimes\fP(2))  が、子プロセスでは 0
 にリセットされる。
 .IP *
 子プロセスの処理待ちのシグナルの集合 (\fBsigpending\fP(2))  は、初期状態では空になる。
 .IP *
 子プロセスは親プロセスからセマフォ調整 (\fBsemop\fP(2))  を引き継がない。
 .IP *
-子プロセスは親プロセスからレコードロック (\fBfcntl\fP(2))  を引き継がない。
+子プロセスは親プロセスからプロセスに関連付けられたレコードロックを引き継がない (\fBfcntl\fP(2))。 (一方、子プロセスは親プロセスから
+\fBfcntl\fP(2) オープンファイル記述ロックと \fBflock\fP(2) ロックを引き継ぐ。)
 .IP *
 子プロセスは親プロセスからタイマー (\fBsetitimer\fP(2), \fBalarm\fP(2), \fBtimer_create\fP(2))
 を引き継がない。
@@ -101,7 +102,7 @@ fork \- 子プロセスを生成する
 timer slack value のデフォルト値には、親プロセスの現在の timer slack value が設定される。 \fBprctl\fP(2)
 の \fBPR_SET_TIMERSLACK\fP の説明を参照。
 .IP *
-\fBmadvise\fP(2)  の \fBMADV_DONTFORK\fP フラグでマークされたメモリマッピングは、 \fBfork\fP()
+\fBmadvise\fP(2)  ã\81® \fBMADV_DONTFORK\fP ã\83\95ã\83©ã\82°ã\81§ã\83\9eã\83¼ã\82¯ã\81\95ã\82\8cã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\83\9eã\83\83ã\83\94ã\83³ã\82°ã\81¯ã\80\81 \fBfork\fP()
 によって引き継がれない。
 .IP *
 子プロセスの終了シグナルは常に \fBSIGCHLD\fP である (\fBclone\fP(2)  を参照)。
@@ -115,14 +116,14 @@ timer slack value のデフォルト値には、親プロセスの現在の time
 親プロセスの仮想アドレス空間全体が子プロセスに複製される。 これにはミューテックス (mutex) の状態・条件変数・ pthread
 オブジェクトが含まれる。 これが引き起こす問題を扱うには、 \fBpthread_atfork\fP(3)  を使うと良いだろう。
 .IP *
-å­\90ã\83\97ã\83­ã\82»ã\82¹ã\81¯è¦ªã\83\97ã\83­ã\82»ã\82¹ã\81\8cæ\8c\81ã\81¤ ã\82ªã\83¼ã\83\97ã\83³ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81®é\9b\86å\90\88ã\81®ã\82³ã\83\94ã\83¼ã\82\92å¼\95ã\81\8dç¶\99ã\81\90ã\80\82 å­\90ã\83\97ã\83­ã\82»ã\82¹ã\81®å\90\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿は、
-親プロセスのファイルディスクリプタに対応する 同じオープンファイル記述 (file description) を参照する (\fBopen\fP(2)
\82\92å\8f\82ç\85§)ã\80\82 ã\81\93ã\82\8cã\81¯ 2 ã\81¤ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cã\80\81ã\83\95ã\82¡ã\82¤ã\83«ç\8a¶æ\85\8bã\83\95ã\83©ã\82°ã\83» ç\8f¾å\9c¨ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\80\81ã\82·ã\82°ã\83\8aã\83«é§\86å\8b\95 (signal\-driven) I/O å±\9eæ\80§
-(\fBfcntl\fP(2)  における \fBF_SETOWN\fP, \fBF_SETSIG\fP の説明を参照) を共有することを意味する。
+å­\90ã\83\97ã\83­ã\82»ã\82¹ã\81¯è¦ªã\83\97ã\83­ã\82»ã\82¹ã\81\8cæ\8c\81ã\81¤ ã\82ªã\83¼ã\83\97ã\83³ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81®é\9b\86å\90\88ã\81®ã\82³ã\83\94ã\83¼ã\82\92å¼\95ã\81\8dç¶\99ã\81\90ã\80\82 å­\90ã\83\97ã\83­ã\82»ã\82¹ã\81®å\90\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼は、
+親ã\83\97ã\83­ã\82»ã\82¹ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾å¿\9cã\81\99ã\82\8b å\90\8cã\81\98ã\82ªã\83¼ã\83\97ã\83³ã\83\95ã\82¡ã\82¤ã\83«è¨\98è¿° (file description) ã\82\92å\8f\82ç\85§ã\81\99ã\82\8b (\fBopen\fP(2)
\82\92å\8f\82ç\85§)ã\80\82 ã\81\93ã\82\8cã\81¯ 2 ã\81¤ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cã\80\81ã\83\95ã\82¡ã\82¤ã\83«ç\8a¶æ\85\8bã\83\95ã\83©ã\82°ã\83» ç\8f¾å\9c¨ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\80\81ã\82·ã\82°ã\83\8aã\83«é§\86å\8b\95 (signal\-driven) I/O
+属性 (\fBfcntl\fP(2)  における \fBF_SETOWN\fP, \fBF_SETSIG\fP の説明を参照) を共有することを意味する。
 .IP *
-子プロセスは親プロセスが持つオープンメッセージキューディスクリプタ (\fBmq_overview\fP(7)  を参照) の集合のコピーを引き継ぐ。
-å­\90ã\83\97ã\83­ã\82»ã\82¹ã\81®å\90\84ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯ã\80\81 è¦ªã\83\97ã\83­ã\82»ã\82¹ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81«å¯¾å¿\9cã\81\99ã\82\8b å\90\8cã\81\98ã\82ªã\83¼ã\83\97ã\83³ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82­ã\83¥ã\83¼ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を参照する。 これは 2
-つのディスクリプタが同じフラグ (\fImq_flags\fP)  を共有することを意味する。
+子プロセスは親プロセスが持つオープンメッセージキューディスクリプタ (\fBmq_overview\fP(7)  を参照) の集合のコピーを引き継ぐ。
+å­\90ã\83\97ã\83­ã\82»ã\82¹ã\81®å\90\84ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81 è¦ªã\83\97ã\83­ã\82»ã\82¹ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«å¯¾å¿\9cã\81\99ã\82\8b å\90\8cã\81\98ã\82ªã\83¼ã\83\97ã\83³ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82­ã\83¥ã\83¼ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を参照する。 これは 2
\81¤ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cå\90\8cã\81\98ã\83\95ã\83©ã\82° (\fImq_flags\fP)  ã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\81\93ã\81¨ã\82\92æ\84\8få\91³ã\81\99ã\82\8bã\80\82
 .IP *
 子プロセスは、親プロセスのオープン済みのディレクトリストリームの集合 (\fBopendir\fP(3)  参照) のコピーを継承する。
 POSIX.1\-2001 では、親プロセスと子プロセス間の対応するディレクトリストリーム はディレクトリストリームの位置 (positioning)
@@ -133,30 +134,34 @@ POSIX.1\-2001 では、親プロセスと子プロセス間の対応するディ
 .SH エラー
 .TP 
 \fBEAGAIN\fP
-親プロセスのページテーブルのコピーと 子プロセスのタスク構造に生成に必要なメモリを \fBfork\fP()  が割り当てることができなかった。
+親ã\83\97ã\83­ã\82»ã\82¹ã\81®ã\83\9aã\83¼ã\82¸ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\82³ã\83\94ã\83¼ã\81¨ å­\90ã\83\97ã\83­ã\82»ã\82¹ã\81®ã\82¿ã\82¹ã\82¯æ§\8bé\80 ã\81«ç\94\9fæ\88\90ã\81«å¿\85è¦\81ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\82\92 \fBfork\fP()  ã\81\8cå\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9fã\80\82
 .TP 
 \fBEAGAIN\fP
-呼び出し元の \fBRLIMIT_NPROC\fP 資源の制限 (resource limit) に達したために、新しいプロセスを生成できなかった。
-この制限を超えるには、プロセスは \fBCAP_SYS_ADMIN\fP または \fBCAP_SYS_RESOURCE\fP ケーパビリティ
-(capability) を持っていなくてはならない。
+
+.\" NOTE! The following should match the description in pthread_create(3)
+システムで設定されたスレッド数の上限に達していた。 このエラーの原因となる上限値はいくつかある。 実ユーザー ID
+当たりのプロセス数とスレッド数の上限である、ソフトリソース上限 \fBRLIMIT_NPROC\fP に達していた (\fBsetrlimit\fP(2)
+で設定できる)。 カーネルのシステム全体のプロセスとスレッドの上限数である \fI/proc/sys/kernel/threads\-max\fP が達していた
+(\fBproc\fP(5) 参照)。 PID の最大値 \fI/proc/sys/kernel/pid_max\fP に達していた (\fBproc\fP(5)
+参照)。
 .TP 
 \fBEAGAIN\fP
 呼び出し元は、スケジューリングポリシー \fBSCHED_DEADLINE\fP で動作しており、かつ reset\-on\-fork
 フラグがセットされていない。 \fBsched\fP(7) 参照。
 .TP 
 \fBENOMEM\fP
-メモリが足りないために、 \fBfork\fP()  は必要なカーネル構造体を割り当てることができなかった。
\83¡ã\83¢ã\83ªã\83¼ã\81\8c足ã\82\8aã\81ªã\81\84ã\81\9fã\82\81ã\81«ã\80\81 \fBfork\fP()  ã\81¯å¿\85è¦\81ã\81ªã\82«ã\83¼ã\83\8dã\83«æ§\8bé\80 ä½\93ã\82\92å\89²ã\82\8aå½\93ã\81¦ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9fã\80\82
 .TP 
 \fBENOSYS\fP
 .\" e.g., arm (optionally), blackfin, c6x, frv, h8300, microblaze, xtensa
 \fBfork\fP() はこのプラットフォームではサポートされていない
-(例えば、メモリ管理ユニット (MMU) がないハードウェア)。
+(例えば、メモリ管理ユニット (MMU) がないハードウェア)。
 .SH 準拠
 SVr4, 4.3BSD, POSIX.1\-2001.
 .SH 注意
 .PP
 Linux では、 \fBfork\fP()  を 書き込み時コピー (copy\-on\-write) ページを用いて実装している。 したがって、fork
-を行うことの唯一のデメリットは、 親プロセスのページテーブルを複製と 子プロセス自身のタスク構造の作成のための時間とメモリが必要なことである。
\82\92è¡\8cã\81\86ã\81\93ã\81¨ã\81®å\94¯ä¸\80ã\81®ã\83\87ã\83¡ã\83ªã\83\83ã\83\88ã\81¯ã\80\81 è¦ªã\83\97ã\83­ã\82»ã\82¹ã\81®ã\83\9aã\83¼ã\82¸ã\83\86ã\83¼ã\83\96ã\83«ã\82\92è¤\87製ã\81¨ å­\90ã\83\97ã\83­ã\82»ã\82¹è\87ªèº«ã\81®ã\82¿ã\82¹ã\82¯æ§\8bé\80 ã\81®ä½\9cæ\88\90ã\81®ã\81\9fã\82\81ã\81®æ\99\82é\96\93ã\81¨ã\83¡ã\83¢ã\83ªã\83¼ã\81\8cå¿\85è¦\81ã\81ªã\81\93ã\81¨ã\81§ã\81\82ã\82\8bã\80\82
 
 .\" nptl/sysdeps/unix/sysv/linux/fork.c
 .\" and does some magic to ensure that getpid(2) returns the right value.
@@ -167,13 +172,13 @@ glibc の\fBfork\fP() ラッパー関数は、 カーネルの \fBfork\fP() シ
 同じ効果が得られるようなフラグが指定される (\fBfork\fP() の呼び出しは、
 \fIflags\fP に \fBSIGCHLD\fP だけを指定して \fBclone\fP(2) を呼び出すのと等価である)。
 glibc のラッパー関数は \fBpthread_atfork\fP(3) を使って設定されている
-任意の fork ハンドラを起動する。
+ä»»æ\84\8fã\81® fork ã\83\8fã\83³ã\83\89ã\83©ã\83¼ã\82\92èµ·å\8b\95ã\81\99ã\82\8bã\80\82
 .SH 例
 \fBpipe\fP(2)  および \fBwait\fP(2)  を参照。
 .SH 関連項目
 \fBclone\fP(2), \fBexecve\fP(2), \fBexit\fP(2), \fBsetrlimit\fP(2), \fBunshare\fP(2),
 \fBvfork\fP(2), \fBwait\fP(2), \fBdaemon\fP(3), \fBcapabilities\fP(7), \fBcredentials\fP(7)
 .SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.78 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。