OSDN Git Service

Convert release and draft pages to UTF-8.
[linuxjm/jm.git] / manual / LDP_man-pages / draft / man2 / fork.2
index 52b437c..50fa882 100644 (file)
 .\"
 .TH FORK 2 2009-04-27 "Linux" "Linux Programmer's Manual"
 .\"O .SH NAME
-.SH Ì¾Á°
+.SH 名前
 .\"O fork \- create a child process
-fork \- »Ò¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë
+fork \- 子プロセスを生成する
 .\"O .SH SYNOPSIS
-.SH ½ñ¼°
+.SH 書式
 .B #include <unistd.h>
 .sp
 .B pid_t fork(void);
 .\"O .SH DESCRIPTION
-.SH ÀâÌÀ
+.SH 説明
 .\"O .BR fork ()
 .\"O creates a new process by duplicating the calling process.
 .\"O The new process, referred to as the \fIchild\fP,
 .\"O is an exact duplicate of the calling process,
 .\"O referred to as the \fIparent\fP, except for the following points:
 .BR fork ()
-¤Ï¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤òÊ£À½¤·¤Æ¿·¤·¤¤¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¡£
-\fIchild\fP ¤Ç»²¾È¤µ¤ì¤ë¿·¤·¤¤¥×¥í¥»¥¹¤Ï¡¢°Ê²¼¤ÎÅÀ¤ò½ü¤­¡¢
-\fIparent\fP ¤Ç»²¾È¤µ¤ì¤ë¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î´°Á´¤ÊÊ£À½¤Ç¤¢¤ë:
+は呼び出し元プロセスを複製して新しいプロセスを生成する。
+\fIchild\fP で参照される新しいプロセスは、以下の点を除き、
+\fIparent\fP で参照される呼び出し元プロセスの完全な複製である:
 .IP * 3
 .\"O The child has its own unique process ID,
 .\"O and this PID does not match the ID of any existing process group
 .\"O .RB ( setpgid (2)).
-»Ò¥×¥í¥»¥¹¤ÏÆȼ«¤Î¥×¥í¥»¥¹ ID ¤ò»ý¤Á¡¢
-¤³¤Î PID ¤Ï´û¸¤Î¤É¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×
+子プロセスは独自のプロセス ID を持ち、
+この PID は既存のどのプロセスグループ
 .RB ( setpgid (2))
-¤Î ID ¤È¤â°ìÃפ·¤Ê¤¤¡£
+の ID とも一致しない。
 .IP *
 .\"O The child's parent process ID is the same as the parent's process ID.
-»Ò¥×¥í¥»¥¹¤Î¿Æ¥×¥í¥»¥¹ ID ¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤ÈƱ¤¸¤Ç¤¢¤ë¡£
+子プロセスの親プロセス ID は、親プロセスのプロセス ID と同じである。
 .IP *
 .\"O The child does not inherit its parent's memory locks
 .\"O .RB ( mlock (2),
 .\"O .BR mlockall (2)).
-»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤Î¥á¥â¥ê¥í¥Ã¥¯
+å­\90ã\83\97ã\83­ã\82»ã\82¹ã\81¯è¦ªã\83\97ã\83­ã\82»ã\82¹ã\81®ã\83¡ã\83¢ã\83ªã\83­ã\83\83ã\82¯
 .RB ( mlock (2),
 .BR mlockall (2))
-¤ò°ú¤­·Ñ¤¬¤Ê¤¤¡£
+を引き継がない。
 .IP *
 .\"O Process resource utilizations
 .\"O .RB ( getrusage (2))
 .\"O and CPU time counters
 .\"O .RB ( times (2))
 .\"O are reset to zero in the child.
-¥×¥í¥»¥¹¤Î»ñ¸»ÍøÍÑÎÌ
+プロセスの資源利用量
 .RB ( getrusage (2))
-¤È CPU ¥¿¥¤¥à¥«¥¦¥ó¥¿
+ã\81¨ CPU ã\82¿ã\82¤ã\83 ã\82«ã\82¦ã\83³ã\82¿
 .RB ( times (2))
-¤¬¡¢»Ò¥×¥í¥»¥¹¤Ç¤Ï 0 ¤Ë¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£
+が、子プロセスでは 0 にリセットされる。
 .IP *
 .\"O The child's set of pending signals is initially empty
 .\"O .RB ( sigpending (2)).
-»Ò¥×¥í¥»¥¹¤Î½èÍýÂÔ¤Á¤Î¥·¥°¥Ê¥ë¤Î½¸¹ç
+子プロセスの処理待ちのシグナルの集合
 .RB ( sigpending (2))
-¤Ï¡¢½é´ü¾õÂ֤Ǥ϶õ¤Ë¤Ê¤ë¡£
+は、初期状態では空になる。
 .IP *
 .\"O The child does not inherit semaphore adjustments from its parent
 .\"O .RB ( semop (2)).
-»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤«¤é¥»¥Þ¥Õ¥©Ä´À°
+子プロセスは親プロセスからセマフォ調整
 .RB ( semop (2))
-¤ò°ú¤­·Ñ¤¬¤Ê¤¤¡£
+を引き継がない。
 .IP *
 .\"O The child does not inherit record locks from its parent
 .\"O .RB ( fcntl (2)).
-»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤«¤é¥ì¥³¡¼¥É¥í¥Ã¥¯
+å­\90ã\83\97ã\83­ã\82»ã\82¹ã\81¯è¦ªã\83\97ã\83­ã\82»ã\82¹ã\81\8bã\82\89ã\83¬ã\82³ã\83¼ã\83\89ã\83­ã\83\83ã\82¯
 .RB ( fcntl (2))
-¤ò°ú¤­·Ñ¤¬¤Ê¤¤¡£
+を引き継がない。
 .IP *
 .\"O The child does not inherit timers from its parent
 .\"O .RB ( setitimer (2),
 .\"O .BR alarm (2),
 .\"O .BR timer_create (2)).
-»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤«¤é¥¿¥¤¥Þ¡¼
+å­\90ã\83\97ã\83­ã\82»ã\82¹ã\81¯è¦ªã\83\97ã\83­ã\82»ã\82¹ã\81\8bã\82\89ã\82¿ã\82¤ã\83\9eã\83¼
 .RB ( setitimer (2),
 .BR alarm (2),
 .BR timer_create (2))
-¤ò°ú¤­·Ñ¤¬¤Ê¤¤¡£
+を引き継がない。
 .IP *
 .\"O The child does not inherit outstanding asynchronous I/O operations
 .\"O from its parent
@@ -135,20 +135,20 @@ fork \- 
 .\"O .BR aio_write (3)),
 .\"O nor does it inherit any asynchronous I/O contexts from its parent (see
 .\"O .BR io_setup (2)).
-»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤«¤é¼ç¤À¤Ã¤¿ÈóƱ´ü I/O Áàºî¤ò°ú¤­·Ñ¤¬¤Ê¤¤
+子プロセスは親プロセスから主だった非同期 I/O 操作を引き継がない
 .RB ( aio_read (3),
 .BR aio_write (3)
-»²¾È)¡£
-¤Þ¤¿¡¢¿Æ¥×¥í¥»¥¹¤«¤éÈóƱ´ü I/O ¥³¥ó¥Æ¥­¥¹¥È¤ò°ú¤­·Ñ¤¬¤Ê¤¤
+参照)。
+また、親プロセスから非同期 I/O コンテキストを引き継がない
 .RB ( io_setup (2)
-»²¾È)¡£
+参照)。
 .PP
 .\"O The process attributes in the preceding list are all specified
 .\"O in POSIX.1-2001.
 .\"O The parent and child also differ with respect to the following
 .\"O Linux-specific process attributes:
-¾åµ­¤Î¥ê¥¹¥È¤Ë¤¢¤ë¥×¥í¥»¥¹Â°À­¤Ï¡¢POSIX.1-2001 ¤ÇÁ´¤Æ»ØÄꤵ¤ì¤Æ¤¤¤ë¡£
-¿Æ¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹¤Ï¡¢°Ê²¼¤Î Linux ¸ÇÍ­¤Î¥×¥í¥»¥¹Â°À­¤â°Û¤Ê¤ë:
+上記のリストにあるプロセス属性は、POSIX.1-2001 で全て指定されている。
+親プロセスと子プロセスは、以下の Linux 固有のプロセス属性も異なる:
 .IP * 3
 .\"O The child does not inherit directory change notifications (dnotify)
 .\"O from its parent
@@ -156,11 +156,11 @@ fork \- 
 .\"O .B F_NOTIFY
 .\"O in
 .\"O .BR fcntl (2)).
-»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤«¤é¥Ç¥£¥ì¥¯¥È¥êÊѹ¹ÄÌÃΠ(dnotify)
+子プロセスは親プロセスからディレクトリ変更通知 (dnotify)
 .RB ( fcntl (2)
-¤Ë¤ª¤±¤ë
+における
 .B F_NOTIFY
-¤ÎÀâÌÀ¤ò»²¾È) ¤ò°ú¤­·Ñ¤¬¤Ê¤¤¡£
+の説明を参照) を引き継がない。
 .IP *
 .\"O The
 .\"O .BR prctl (2)
@@ -168,10 +168,10 @@ fork \- 
 .\"O setting is reset so that the child does not receive a signal
 .\"O when its parent terminates.
 .BR prctl (2)
-¤Î
+の
 .B PR_SET_PDEATHSIG
-¤ÎÀßÄ꤬¥ê¥»¥Ã¥È¤µ¤ì¡¢»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¤È¤­¤Ë
-¥·¥°¥Ê¥ë¤ò¼õ¿®¤·¤Ê¤¤¡£
+の設定がリセットされ、子プロセスは親プロセスが終了したときに
+シグナルを受信しない。
 .IP *
 .\"O Memory mappings that have been marked with the
 .\"O .BR madvise (2)
@@ -179,55 +179,55 @@ fork \- 
 .\"O flag are not inherited across a
 .\"O .BR fork ().
 .BR madvise (2)
-¤Î
+の
 .B MADV_DONTFORK
-¥Õ¥é¥°¤Ç¥Þ¡¼¥¯¤µ¤ì¤¿¥á¥â¥ê¥Þ¥Ã¥Ô¥ó¥°¤Ï¡¢
+フラグでマークされたメモリマッピングは、
 .BR fork ()
-¤Ë¤è¤Ã¤Æ°ú¤­·Ñ¤¬¤ì¤Ê¤¤¡£
+によって引き継がれない。
 .IP *
 .\"O The termination signal of the child is always
 .\"O .B SIGCHLD
 .\"O (see
 .\"O .BR clone (2)).
-»Ò¥×¥í¥»¥¹¤Î½ªÎ»¥·¥°¥Ê¥ë¤Ï¾ï¤Ë
+子プロセスの終了シグナルは常に
 .B SIGCHLD
-¤Ç¤¢¤ë
+である
 .RB ( clone (2)
-¤ò»²¾È)¡£
+を参照)。
 .PP
 .\"O Note the following further points:
-¤µ¤é¤Ë°Ê²¼¤ÎÅÀ¤Ë¤Ä¤¤¤ÆÃí°Õ¤¹¤ë¤³¤È:
+さらに以下の点について注意すること:
 .IP * 3
 .\"O The child process is created with a single thread\(emthe
 .\"O one that called
 .\"O .BR fork ().
-»Ò¥×¥í¥»¥¹¤Ï¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¤ÇÀ¸À®¤µ¤ì¤ë¡£¤Ä¤Þ¤ê¡¢
+子プロセスはシングルスレッドで生成される。つまり、
 .BR fork ()
-¤ò¸Æ¤Ó½Ð¤·¤¿¥¹¥ì¥Ã¥É¤È¤Ê¤ë¡£
+を呼び出したスレッドとなる。
 .\"O The entire virtual address space of the parent is replicated in the child,
 .\"O including the states of mutexes, condition variables,
 .\"O and other pthreads objects; the use of
 .\"O .BR pthread_atfork (3)
 .\"O may be helpful for dealing with problems that this can cause.
-¿Æ¥×¥í¥»¥¹¤Î²¾ÁÛ¥¢¥É¥ì¥¹¶õ´ÖÁ´ÂΤ¬»Ò¥×¥í¥»¥¹¤ËÊ£À½¤µ¤ì¤ë¡£
-¤³¤ì¤Ë¤Ï¥ß¥å¡¼¥Æ¥Ã¥¯¥¹ (mutex) ¤Î¾õÂÖ¡¦¾ò·ïÊÑ¿ô¡¦
-pthread ¥ª¥Ö¥¸¥§¥¯¥È¤¬´Þ¤Þ¤ì¤ë¡£
-¤³¤ì¤¬°ú¤­µ¯¤³¤¹ÌäÂê¤ò°·¤¦¤Ë¤Ï¡¢
+親プロセスの仮想アドレス空間全体が子プロセスに複製される。
+これにはミューテックス (mutex) の状態・条件変数・
+pthread オブジェクトが含まれる。
+これが引き起こす問題を扱うには、
 .BR pthread_atfork (3)
-¤ò»È¤¦¤ÈÎɤ¤¤À¤í¤¦¡£
+を使うと良いだろう。
 .IP *
 .\"O The child inherits copies of the parent's set of open file descriptors.
 .\"O Each file descriptor in the child refers to the same
 .\"O open file description (see
 .\"O .BR open (2))
 .\"O as the corresponding file descriptor in the parent.
-»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤¬»ý¤Ä
-¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î½¸¹ç¤Î¥³¥Ô¡¼¤ò°ú¤­·Ñ¤°¡£
-»Ò¥×¥í¥»¥¹¤Î³Æ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢
-¿Æ¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂбþ¤¹¤ë
-Ʊ¤¸¥ª¡¼¥×¥ó¥Õ¥¡¥¤¥ëµ­½Ò (file description) ¤ò»²¾È¤¹¤ë
+子プロセスは親プロセスが持つ
+オープンファイルディスクリプタの集合のコピーを引き継ぐ。
+子プロセスの各ファイルディスクリプタは、
+親プロセスのファイルディスクリプタに対応する
+同じオープンファイル記述 (file description) を参照する
 .RB ( open (2)
-¤ò»²¾È)¡£
+を参照)。
 .\"O This means that the two descriptors share open file status flags,
 .\"O current file offset,
 .\"O and signal-driven I/O attributes (see the description of
@@ -236,31 +236,31 @@ pthread 
 .\"O .B F_SETSIG
 .\"O in
 .\"O .BR fcntl (2)).
-¤³¤ì¤Ï 2 ¤Ä¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬¡¢¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¡¦
-¸½ºß¤Î¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¡¢¥·¥°¥Ê¥ë¶îÆ° (signal-driven) I/O Â°À­
+これは 2 つのディスクリプタが、ファイル状態フラグ・
+現在のファイルオフセット、シグナル駆動 (signal-driven) I/O 属性
 .RB ( fcntl (2)
-¤Ë¤ª¤±¤ë
+における
 .BR F_SETOWN ,
 .B F_SETSIG
-¤ÎÀâÌÀ¤ò»²¾È) ¤ò¶¦Í­¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
+の説明を参照) を共有することを意味する。
 .IP *
 .\"O The child inherits copies of the parent's set of open message
 .\"O queue descriptors (see
 .\"O .BR mq_overview (7)).
-»Ò¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤¬»ý¤Ä¥ª¡¼¥×¥ó¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¥Ç¥£¥¹¥¯¥ê¥×¥¿
+å­\90ã\83\97ã\83­ã\82»ã\82¹ã\81¯è¦ªã\83\97ã\83­ã\82»ã\82¹ã\81\8cæ\8c\81ã\81¤ã\82ªã\83¼ã\83\97ã\83³ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\82­ã\83¥ã\83¼ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿
 .RB ( mq_overview (7)
-¤ò»²¾È) ¤Î½¸¹ç¤Î¥³¥Ô¡¼¤ò°ú¤­·Ñ¤°¡£
+を参照) の集合のコピーを引き継ぐ。
 .\"O Each descriptor in the child refers to the same
 .\"O open message queue description
 .\"O as the corresponding descriptor in the parent.
-»Ò¥×¥í¥»¥¹¤Î³Æ¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¡¢
-¿Æ¥×¥í¥»¥¹¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂбþ¤¹¤ë
-Ʊ¤¸¥ª¡¼¥×¥ó¥á¥Ã¥»¡¼¥¸¥­¥å¡¼¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»²¾È¤¹¤ë¡£
+子プロセスの各ディスクリプタは、
+親プロセスのディスクリプタに対応する
+同じオープンメッセージキューディスクリプタを参照する。
 .\"O This means that the two descriptors share the same flags
 .\"O .RI ( mq_flags ).
-¤³¤ì¤Ï 2 ¤Ä¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬Æ±¤¸¥Õ¥é¥°
+ã\81\93ã\82\8cã\81¯ 2 ã\81¤ã\81®ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cå\90\8cã\81\98ã\83\95ã\83©ã\82°
 .RI ( mq_flags )
-¤ò¶¦Í­¤¹¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
+を共有することを意味する。
 .IP *
 .\"O The child inherits copies of the parent's set of open directory streams (see
 .\"O .BR opendir (3)).
@@ -269,78 +269,78 @@ pthread 
 .\"O .I may
 .\"O share the directory stream positioning;
 .\"O on Linux/glibc they do not.
-»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î¥ª¡¼¥×¥óºÑ¤ß¤Î¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤Î½¸¹ç
+子プロセスは、親プロセスのオープン済みのディレクトリストリームの集合
 .RB ( opendir (3)
-»²¾È) ¤Î¥³¥Ô¡¼¤ò·Ñ¾µ¤¹¤ë¡£
-POSIX.1-2001 ¤Ç¤Ï¡¢¿Æ¥×¥í¥»¥¹¤È»Ò¥×¥í¥»¥¹´Ö¤ÎÂбþ¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à
-¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤Î°ÌÃÖ (positioning) ¤ò¶¦Í­¤·¤Æ¤â¤è¤¤¤È¤µ¤ì¤Æ¤¤¤ë¡£
-Linux/glibc ¤Ç¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥¹¥È¥ê¡¼¥à¤Î°ÌÃ֤ζ¦Í­¤Ï¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¡£
+参照) のコピーを継承する。
+POSIX.1-2001 では、親プロセスと子プロセス間の対応するディレクトリストリーム
+はディレクトリストリームの位置 (positioning) を共有してもよいとされている。
+Linux/glibc ではディレクトリストリームの位置の共有は行われていない。
 .\"O .SH "RETURN VALUE"
-.SH ÊÖ¤êÃÍ
+.SH 返り値
 .\"O On success, the PID of the child process is returned in the parent,
 .\"O and 0 is returned in the child.
 .\"O On failure, \-1 is returned in the parent,
 .\"O no child process is created, and
 .\"O .I errno
 .\"O is set appropriately.
-À®¸ù¤·¤¿¾ì¹ç¡¢¿Æ¥×¥í¥»¥¹¤Ë¤Ï»Ò¥×¥í¥»¥¹¤Î PID ¤¬ÊÖ¤µ¤ì¡¢
-»Ò¥×¥í¥»¥¹¤Ë¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£
-¼ºÇÔ¤·¤¿¾ì¹ç¡¢¿Æ¥×¥í¥»¥¹¤Ë \-1 ¤¬ÊÖ¤µ¤ì¡¢»Ò¥×¥í¥»¥¹¤ÏÀ¸À®¤µ¤ì¤º¡¢
+成功した場合、親プロセスには子プロセスの PID が返され、
+子プロセスには 0 が返される。
+失敗した場合、親プロセスに \-1 が返され、子プロセスは生成されず、
 .I errno
-¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£
+が適切に設定される。
 .\"O .SH ERRORS
-.SH ¥¨¥é¡¼
+.SH ã\82¨ã\83©ã\83¼
 .TP
 .B EAGAIN
 .\"O .BR fork ()
 .\"O cannot allocate sufficient memory to copy the parent's page tables and
 .\"O allocate a task structure for the child.
-¿Æ¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¤Î¥³¥Ô¡¼¤È
-»Ò¥×¥í¥»¥¹¤Î¥¿¥¹¥¯¹½Â¤¤ËÀ¸À®¤ËɬÍפʥá¥â¥ê¤ò
+親プロセスのページ・テーブルのコピーと
+子プロセスのタスク構造に生成に必要なメモリを
 .BR fork ()
-¤¬³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£
+が割り当てることができなかった。
 .TP
 .B EAGAIN
 .\"O It was not possible to create a new process because the caller's
 .\"O .B RLIMIT_NPROC
 .\"O resource limit was encountered.
-¸Æ¤Ó½Ð¤·¸µ¤Î
+呼び出し元の
 .B RLIMIT_NPROC
-»ñ¸»¤ÎÀ©¸Â (resource limit) ¤Ë㤷¤¿¤¿¤á¤Ë¡¢¿·¤·¤¤¥×¥í¥»¥¹¤òÀ¸À®¤Ç¤­¤Ê¤«¤Ã¤¿¡£
+資源の制限 (resource limit) に達したために、新しいプロセスを生成できなかった。
 .\"O To exceed this limit, the process must have either the
 .\"O .B CAP_SYS_ADMIN
 .\"O or the
 .\"O .B CAP_SYS_RESOURCE
 .\"O capability.
-¤³¤ÎÀ©¸Â¤òĶ¤¨¤ë¤Ë¤Ï¡¢¥×¥í¥»¥¹¤Ï
+この制限を超えるには、プロセスは
 .B CAP_SYS_ADMIN
-¤Þ¤¿¤Ï
+または
 .B CAP_SYS_RESOURCE
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
+ケーパビリティ (capability) を持っていなくてはならない。
 .TP
 .B ENOMEM
 .\"O .BR fork ()
 .\"O failed to allocate the necessary kernel structures because memory is tight.
-¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¤¿¤á¤Ë¡¢
+メモリが足りないために、
 .BR fork ()
-¤ÏɬÍפʥ«¡¼¥Í¥ë¹½Â¤ÂΤò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£
+は必要なカーネル構造体を割り当てることができなかった。
 .\"O .SH "CONFORMING TO"
-.SH ½àµò
+.SH 準拠
 SVr4, 4.3BSD, POSIX.1-2001.
 .\"O .SH NOTES
-.SH Ãí°Õ
+.SH 注意
 .\"O .PP
 .\"O Under Linux,
 .\"O .BR fork ()
 .\"O is implemented using copy-on-write pages, so the only penalty that it incurs
 .\"O is the time and memory required to duplicate the parent's page tables,
 .\"O and to create a unique task structure for the child.
-Linux ¤Ç¤Ï¡¢
+Linux では、
 .BR fork ()
-¤ò ½ñ¤­¹þ¤ß»þ¥³¥Ô¡¼ (copy-on-write)¡¦¥Ú¡¼¥¸¤òÍѤ¤¤Æ¼ÂÁõ¤·¤Æ¤¤¤ë¡£
-¤·¤¿¤¬¤Ã¤Æ¡¢fork ¤ò¹Ô¤¦¤³¤È¤ÎÍ£°ì¤Î¥Ç¥á¥ê¥Ã¥È¤Ï¡¢
-¿Æ¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¤òÊ£À½¤È
-»Ò¥×¥í¥»¥¹¼«¿È¤Î¥¿¥¹¥¯¹½Â¤¤ÎºîÀ®¤Î¤¿¤á¤Î»þ´Ö¤È¥á¥â¥ê¤¬É¬Íפʤ³¤È¤Ç¤¢¤ë¡£
+を 書き込み時コピー (copy-on-write)・ページを用いて実装している。
+したがって、fork を行うことの唯一のデメリットは、
+親プロセスのページ・テーブルを複製と
+子プロセス自身のタスク構造の作成のための時間とメモリが必要なことである。
 
 .\"O Since version 2.3.3,
 .\"O .\" nptl/sysdeps/unix/sysv/linux/fork.c
@@ -357,36 +357,36 @@ Linux 
 .\"O established using
 .\"O .BR pthread_atfork (3).
 .\"O .\" and does some magic to ensure that getpid(2) returns the right value.
-glibc 2.3.3 °Ê¹ß¤Ç¤Ï¡¢
-NPTL ¥¹¥ì¥Ã¥É¼ÂÁõ¤Î°ìÉô¤È¤·¤ÆÄ󶡤µ¤ì¤Æ¤¤¤ë glibc ¤Î
+glibc 2.3.3 以降では、
+NPTL スレッド実装の一部として提供されている glibc の
 .BR fork ()
-¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï¡¢
-¥«¡¼¥Í¥ë¤Î
+ラッパー関数は、
+カーネルの
 .BR fork ()
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ¯Æ°¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢
+システムコールを起動するのではなく、
 .BR clone (2)
-¤òµ¯Æ°¤¹¤ë¡£
+を起動する。
 .BR clone (2)
-¤ËÅϤ¹¥Õ¥é¥°¤È¤·¤Æ¡¢ÅÁÅýŪ¤Ê
+に渡すフラグとして、伝統的な
 .BR fork ()
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÈƱ¤¸¸ú²Ì¤¬ÆÀ¤é¤ì¤ë¤è¤¦¤Ê¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤ë¡£
-glibc ¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï
+システムコールと同じ効果が得られるようなフラグが指定される。
+glibc のラッパー関数は
 .BR pthread_atfork (3)
-¤ò»È¤Ã¤ÆÀßÄꤵ¤ì¤Æ¤¤¤ëǤ°Õ¤Î fork ¥Ï¥ó¥É¥é¤òµ¯Æ°¤¹¤ë¡£
-.\" getpid(2) ¤¬Àµ¤·¤¤ÃͤòÊÖ¤¹¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë²¿¤é¤«¤Î½èÍý¤ò¹Ô¤¦¡£
+を使って設定されている任意の fork ハンドラを起動する。
+.\" getpid(2) が正しい値を返すことができるように何らかの処理を行う。
 
 .\"O .SH EXAMPLE
-.SH Îã
+.SH 
 .\"O See
 .\"O .BR pipe (2)
 .\"O and
 .\"O .BR wait (2).
 .BR pipe (2)
-¤ª¤è¤Ó
+および
 .BR wait (2)
-¤ò»²¾È¡£
+を参照。
 .\"O .SH "SEE ALSO"
-.SH ´ØÏ¢¹àÌÜ
+.SH 関連項目
 .BR clone (2),
 .BR execve (2),
 .BR setrlimit (2),