OSDN Git Service

(split) Convert release and draft pages to UTF-8.
[linuxjm/LDP_man-pages.git] / draft / man2 / vfork.2
index 6c39d05..b20a11a 100644 (file)
 .\"
 .TH VFORK 2 2010-09-20 "Linux" "Linux Programmer's Manual"
 .\"O .SH NAME
-.SH Ì¾Á°
+.SH 名前
 .\"O vfork \- create a child process and block parent
-vfork \- »Ò¥×¥í¥»¥¹¤òÀ¸À®¤·¿Æ¥×¥í¥»¥¹¤òÄä»ß¤µ¤»¤ë
+vfork \- 子プロセスを生成し親プロセスを停止させる
 .\"O .SH SYNOPSIS
-.SH ½ñ¼°
+.SH 書式
 .B #include <sys/types.h>
 .br
 .B #include <unistd.h>
@@ -45,9 +45,9 @@ vfork \- 
 .in -4n
 .\"O Feature Test Macro Requirements for glibc (see
 .\"O .BR feature_test_macros (7)):
-glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
+glibc 向けの機能検査マクロの要件
 .RB ( feature_test_macros (7)
-»²¾È):
+参照):
 .in
 .sp
 .BR vfork ():
@@ -56,7 +56,7 @@ glibc 
 .PD 0
 .TP 4
 .\"O Since glibc 2.12:
-glibc 2.12 °Ê¹ß:
+glibc 2.12 以降:
 .nf
 _BSD_SOURCE ||
     (_XOPEN_SOURCE\ >=\ 500 ||
@@ -65,18 +65,18 @@ _BSD_SOURCE ||
 .fi
 .TP 4
 .\"O Before glibc 2.12:
-glibc 2.12 ¤è¤êÁ°:
+glibc 2.12 より前:
 _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 ||
 _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
 .PD
 .RE
 .ad b
 .\"O .SH DESCRIPTION
-.SH ÀâÌÀ
+.SH 説明
 .\"O .SS "Standard Description"
-.SS µ¬³Ê¤ÎÀâÌÀ
+.SS 規格の説明
 .\"O (From POSIX.1)
-(POSIX.1 ¤è¤ê°úÍÑ)
+(POSIX.1 より引用)
 .\"O The
 .\"O .BR vfork ()
 .\"O function has the same effect as
@@ -95,24 +95,24 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
 .\"O .BR exec (3)
 .\"O family of functions.
 .BR vfork ()
-´Ø¿ô¤Ï
+関数は
 .BR fork (2)
-¤ÈƱ¤¸Æ¯¤­¤ò¤¹¤ë¤¬¡¢
+と同じ働きをするが、
 .BR vfork ()
-¤ÇºîÀ®¤µ¤ì¤¿¥×¥í¥»¥¹¤¬
+で作成されたプロセスが
 .BR vfork ()
-¤«¤é¤ÎÊÖ¤êÃͤò³ÊǼ¤·¤Æ¤¤¤ë
+からの返り値を格納している
 .I pid_t
-·¿¤ÎÊÑ¿ô°Ê³°¤òÊѹ¹¤·¤¿¤ê¡¢
+型の変数以外を変更したり、
 .BR vfork ()
-¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë´Ø¿ô¤«¤é return ¤·¤¿¤ê¡¢
+を呼び出している関数から return したり、
 .BR _exit (2)
-¤ä
+や
 .BR exec (3)
-²¤Î´Ø¿ô¤ò¥³¡¼¥ë¤¹¤ëÁ°¤Ë¾¤Î´Ø¿ô¤ò¥³¡¼¥ë¤·¤¿¾ì¹ç¤ÎÆ°ºî¤¬
-̤ÄêµÁ¤Ç¤¢¤ë¤È¤¤¤¦ÅÀ¤¬°Û¤Ê¤ë¡£
+族の関数をコールする前に他の関数をコールした場合の動作が
+未定義であるという点が異なる。
 .\"O .SS "Linux Description"
-.SS "LINUX ¤Ç¤ÎÀâÌÀ"
+.SS "LINUX での説明"
 .\"O .BR vfork (),
 .\"O just like
 .\"O .BR fork (2),
@@ -120,12 +120,12 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
 .\"O For details and return value and errors, see
 .\"O .BR fork (2).
 .BR vfork ()
-¤Ï
+は
 .BR fork (2)
-¤ÈÁ´¤¯Æ±¤¸¤è¤¦¤Ë¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¡£
-¾Ü¤·¤¤ÀâÌÀ¤ÈÊÖ¤êÃÍ¡¢¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Ï
+と全く同じように呼び出したプロセスの子プロセスを生成する。
+詳しい説明と返り値、エラーについては
 .BR fork (2)
-¤ò»²¾È¤¹¤ë¤³¤È¡£
+を参照すること。
 .PP
 .\"O .BR vfork ()
 .\"O is a special case of
@@ -136,14 +136,14 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
 .\"O where a child is created which then immediately issues an
 .\"O .BR execve (2).
 .BR vfork ()
-¤Ï
+は
 .BR clone (2)
-¤ÎÆüì¤Ê¾ì¹ç¤Ç¤¢¤ë¡£
-¿Æ¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¥Æ¡¼¥Ö¥ë¤Î¥³¥Ô¡¼¤ò¹Ô¤ï¤º¤Ë¿·¤·¤¤¥×¥í¥»¥¹¤ò
-ºîÀ®¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¡£¤³¤ì¤ÏÀ­Ç½¤ËÉÒ´¶¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤ª¤¤¤Æ
-»Ò¥×¥í¥»¥¹¤òÀ¸À®¤·¤Æ¤¹¤°¤Ë
+の特殊な場合である。
+親プロセスのページテーブルのコピーを行わずに新しいプロセスを
+作成するために使用する。これは性能に敏感なアプリケーションにおいて
+子プロセスを生成してすぐに
 .BR execve (2)
-¤¹¤ë¾ì¹ç¤ËÍ­ÍѤ«¤â¤·¤ì¤Ê¤¤¡£
+する場合に有用かもしれない。
 .PP
 .\"O .BR vfork ()
 .\"O differs from
@@ -156,28 +156,28 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
 .\"O or it makes a call to
 .\"O .BR execve (2).
 .BR vfork ()
-¤Ï
+は
 .BR fork (2)
-¤È°ã¤¤¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤«¡¢
+と違い、子プロセスが終了するか、
 .BR execve (2)
-¤ò¥³¡¼¥ë¤¹¤ë¤Þ¤Ç¿Æ¥×¥í¥»¥¹¤òÄä»ß (suspend) ¤µ¤»¤ë¡£
-»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤Ï¡¢
+をコールするまで親プロセスを停止 (suspend) させる。
+子プロセスの終了は、
 .BR _exit (2)
-¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤ëÄ̾ェλ¡¢
-Ã×̿Ū¤Ê¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¸å¤Î°Û¾ï½ªÎ»¤ÎÆó¤Ä¤Î¥±¡¼¥¹¤¬¤¢¤ë¡£
+の呼び出しによる通常終了、
+致命的なシグナルの配送後の異常終了の二つのケースがある。
 .\"O Until that point, the child shares all memory with its parent,
 .\"O including the stack.
 .\"O The child must not return from the current function or call
 .\"O .BR exit (3),
 .\"O but may call
 .\"O .BR _exit (2).
-¤³¤Î»þÅÀ¤Þ¤Ç¤Ï¡¢»Ò¥×¥í¥»¥¹¤Ï¥¹¥¿¥Ã¥¯¤ò´Þ¤àÁ´¤Æ¤Î¥á¥â¥ê¤ò
-¿Æ¥×¥í¥»¥¹¤È¶¦Í­¤¹¤ë¡£
-»Ò¥×¥í¥»¥¹¤Ï¸½ºß¤Î´Ø¿ô¤«¤é return ¤·¤Æ¤Ï¤Ê¤é¤º¡¢
+この時点までは、子プロセスはスタックを含む全てのメモリを
+親プロセスと共有する。
+子プロセスは現在の関数から return してはならず、
 .BR exit (3)
-¤â¥³¡¼¥ë¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¤¬¡¢
+もコールしてはならないが、
 .BR _exit (2)
-¤Ê¤é¤Ð¥³¡¼¥ë¤·¤Æ¤â¤è¤¤¡£
+ならばコールしてもよい。
 .PP
 .\"O Signal handlers are inherited, but not shared.
 .\"O Signals to the parent
@@ -185,26 +185,26 @@ _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
 .\"O (i.e., after the child terminates
 .\"O or calls
 .\"O .BR execve (2)).
-¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ï·Ñ¾µ¤µ¤ì¤ë¤¬¡¢¶¦Í­¤Ï¤µ¤ì¤Ê¤¤¡£
-¿Æ¥×¥í¥»¥¹¤Ø¤Î¥·¥°¥Ê¥ë¤Ï¡¢»Ò¥×¥í¥»¥¹¤¬¿Æ¥×¥í¥»¥¹¤Î¥á¥â¥ê¤ò
-²òÊü¤·¤¿¸å (¤¹¤Ê¤ï¤Á¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤«
+シグナルハンドラは継承されるが、共有はされない。
+親プロセスへのシグナルは、子プロセスが親プロセスのメモリを
+解放した後 (すなわち、子プロセスが終了するか
 .BR execve (2)
-¤ò¸Æ¤ó¤À¸å) ¤ËÅþÃ夹¤ë¡£
+を呼んだ後) に到着する。
 .\"O .SS "Historic Description"
-.SS Îò»ËŪ¤ÊÀâÌÀ
+.SS 歴史的な説明
 .\"O Under Linux,
 .\"O .BR fork (2)
 .\"O is implemented using copy-on-write pages, so the only penalty incurred by
 .\"O .BR fork (2)
 .\"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 (2)
-¤Ï½ñ¤­¹þ¤ß»þ¥³¥Ô¡¼ (copy-on-write) ¥Ú¡¼¥¸¤ò»ÈÍѤ·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡£
-¤½¤Î¤¿¤á
+は書き込み時コピー (copy-on-write) ページを使用して実装されている。
+そのため
 .BR fork (2)
-¤ò»ÈÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤ÆÈï¤ë»³²¤Ï¿Æ¥×¥í¥»¥¹¤Î¥Ú¡¼¥¸¡¦¥Æ¡¼¥Ö¥ë¤ò
-Ê£À½¤¹¤ë¤¿¤á¤ËɬÍפʻþ´Ö¤È¥á¥â¥ê¤À¤±¤Ç¤¢¤ë¡£
+を使用することによって被る損害は親プロセスのページ・テーブルを
+複製するために必要な時間とメモリだけである。
 .\"O However, in the bad old days a
 .\"O .BR fork (2)
 .\"O would require making a complete copy of the caller's data space,
@@ -225,32 +225,32 @@ Linux 
 .\"O was tricky: for example, not modifying data
 .\"O in the parent process depended on knowing which variables were
 .\"O held in a register.
-¤·¤«¤·¤Ê¤¬¤é¡¢´÷¤·¤­ÀΤˤÏ
+しかしながら、忌しき昔には
 .BR fork (2)
-¤Ï¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¥Ç¡¼¥¿¶õ´Ö¤ÎÁ´¤Æ¤Î¥³¥Ô¡¼¤·¤Æ¤¤¤¿¤¬¡¢
-¤³¤ì¤Ï¤·¤Ð¤·¤ÐÉÔɬÍפǤ¢¤Ã¤¿¡£¤Ê¤¼¤Ê¤é¡¢¤¿¤¤¤Æ¤¤¤Ï¤¹¤°¸å¤Ë
+は呼び出したプロセスのデータ空間の全てのコピーしていたが、
+これはしばしば不必要であった。なぜなら、たいていはすぐ後に
 .BR exec (3)
-¤ò¼Â¹Ô¤·¤Æ¤¤¤¿¤«¤é¤Ç¤¢¤ë¡£
-¤³¤Î¾ì¹ç¤Î¸úΨ¤ò¾å¤²¤ë¤¿¤á¤Ë BSD ¤Ï
+を実行していたからである。
+この場合の効率を上げるために BSD は
 .BR vfork ()
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤òƳÆþ¤·¤Æ¿Æ¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ò´°Á´¤Ë¥³¥Ô¡¼
-¤¹¤ë¤«¤ï¤ê¤Ë¡¢
+ã\82·ã\82¹ã\83\86ã\83 ã\82³ã\83¼ã\83«ã\82\92å°\8eå\85¥ã\81\97ã\81¦è¦ªã\83\97ã\83­ã\82»ã\82¹ã\81®ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\82\92å®\8cå\85¨ã\81«ã\82³ã\83\94ã\83¼
+するかわりに、
 .BR execve (2)
-¤ò¥³¡¼¥ë¤¹¤ë¤« exit ¤¬µ¯¤­¤ë¤Þ¤Ç¿Æ¥×¥í¥»¥¹¤Î¥á¥â¥ê¤ÈÀ©¸æ¥¹¥ì¥Ã¥É
-¤ò¼Ú¤ê¤ë¤è¤¦¤Ë¤·¤¿¡£
-¿Æ¥×¥í¥»¥¹¤Ï»Ò¥×¥í¥»¥¹¤¬¤½¤Î»ñ¸»¤ò»ÈÍѤ·¤Æ¤¤¤ë´Ö¤ÏÄä»ß¤µ¤ì¤¿¡£
+をコールするか exit が起きるまで親プロセスのメモリと制御スレッド
+を借りるようにした。
+親プロセスは子プロセスがその資源を使用している間は停止された。
 .BR vfork ()
-¤Ï»È¤¤¤Ë¤¯¤¤¤â¤Î¤Ç¤¢¤Ã¤¿: Î㤨¤Ð¡¢¿Æ¥×¥í¥»¥¹¤ÎÊÑ¿ô¤òÊѹ¹¤·¤Ê
-¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¤É¤ÎÊÑ¿ô¤¬¥ì¥¸¥¹¥¿¤ËÊÝ»ý¤µ¤ì¤Æ¤¤¤ë¤«¤òÃΤé¤Ê
-¤±¤ì¤Ð¤Ê¤é¤Ê¤«¤Ã¤¿¡£
+は使いにくいものであった: 例えば、親プロセスの変数を変更しな
+いようにするためにはどの変数がレジスタに保持されているかを知らな
+ければならなかった。
 .\"O .SH "CONFORMING TO"
-.SH ½àµò
+.SH 準拠
 4.3BSD, POSIX.1-2001.
 .\"O POSIX.1-2008 removes the specification of
 .\"O .BR vfork ().
-POSIX.1-2008 ¤Ç¤Ï¡¢
+POSIX.1-2008 では、
 .BR vfork ()
-¤Îµ¬Ä꤬ºï½ü¤µ¤ì¤Æ¤¤¤ë¡£
+の規定が削除されている。
 .\"O The requirements put on
 .\"O .BR vfork ()
 .\"O by the standards are weaker than those put on
@@ -261,22 +261,22 @@ POSIX.1-2008 
 .\"O .BR execve (2),
 .\"O and cannot rely on any specific behavior with respect to shared memory.
 .BR vfork ()
-¥³¡¼¥ë¤Ï¾¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¡¦¥·¥¹¥Æ¥à¤ÎƱ̾¤Î¥³¡¼¥ë¤È
-¤Á¤ç¤Ã¤È»÷¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£µ¬³Ê¤¬
+コールは他のオペレーティング・システムの同名のコールと
+ちょっと似ているかもしれない。規格が
 .BR vfork ()
-¤ËÍ׵ᤷ¤Æ¤¤¤ë¤³¤È¤Ï¡¢
+に要求していることは、
 .BR fork (2)
-¤ËÍ׵ᤷ¤Æ¤¤¤ë¤³¤È¤è¤ê¤Ï¼å¤¤¡£¤·¤¿¤¬¤Ã¤Æ¡¢
-ξ¼Ô¤òƱ¤¸¤â¤Î¤È¤·¤Æ¼ÂÁõ¤·¤Æ¤â¡¢µ¬³Ê¤Ë½àµò¤·¤Æ¤¤¤ë¤³¤È¤Ë¤Ê¤ë¡£
-ÆÃ¤Ë¥×¥í¥°¥é¥Þ¡¼¤Ï¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤«
+に要求していることよりは弱い。したがって、
+両者を同じものとして実装しても、規格に準拠していることになる。
+特にプログラマーは、子プロセスが終了するか
 .BR execve (2)
-¤ò¸Æ¤Ó½Ð¤¹¤Þ¤Ç¿Æ¥×¥í¥»¥¹¤¬Ää»ß¤·¤Æ¤¤¤ë¤³¤È¤ä¡¢¥á¥â¥ê¤ò¶¦Í­¤¹¤ë¤³
-¤È¤Ë¤è¤ëÆüì¤ÊÆ°ºî¤ò¤¢¤Æ¤Ë¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£
+を呼び出すまで親プロセスが停止していることや、メモリを共有するこ
+とによる特殊な動作をあてにすべきではない。
 .\" In AIXv3.1 vfork is equivalent to fork.
 .\"O .SH NOTES
 .\"O .SS Linux Notes
-.SH Ãí°Õ
-.SS Linux ¤Ç¤ÎÃí°Õ
+.SH 注意
+.SS Linux での注意
 .\"O Fork handlers established using
 .\"O .BR pthread_atfork (3)
 .\"O are not called when a multithreaded program employing
@@ -288,43 +288,43 @@ POSIX.1-2008 
 .\"O .BR pthreads (7)
 .\"O for a description of Linux threading libraries.)
 .BR pthread_atfork (3)
-¤ò»È¤Ã¤ÆÀßÄꤵ¤ì¤¿ fork ¥Ï¥ó¥É¥é¤Ï
-NPTL ¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¥³¡¼¥ë¤òºÎÍѤ·¤¿¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥×¥í¥°¥é¥à¤Ç¤Ï
-¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤¡£°ìÊý¡¢LinuxThreads ¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤¿
-¥×¥í¥°¥é¥à¤Ç¤Ï¡¢fork ¥Ï¥ó¥É¥é¤Ï¸Æ¤Ó½Ð¤µ¤ì¤ë¡£
-(Linux ¤Î¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤ÎÀâÌÀ¤Ï
+を使って設定された fork ハンドラは
+NPTL スレッドライブラリコールを採用したマルチスレッドプログラムでは
+呼び出されない。一方、LinuxThreads スレッドライブラリを使った
+プログラムでは、fork ハンドラは呼び出される。
+(Linux のスレッドライブラリの説明は
 .BR pthreads (7)
-¤ò»²¾È¡£)
+を参照。)
 .\"O .SS History
-.SS Îò»Ë
+.SS 歴史
 .\"O The
 .\"O .BR vfork ()
 .\"O system call appeared in 3.0BSD.
 .BR vfork ()
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï 3.0BSD ¤Ë¸½¤ï¤ì¤¿¡£
+システムコールは 3.0BSD に現われた。
 .\" In the release notes for 4.2BSD Sam Leffler wrote: `vfork: Is still
 .\" present, but definitely on its way out'.
 .\"O In 4.4BSD it was made synonymous to
 .\"O .BR fork (2)
 .\"O but NetBSD introduced it again,
 .\"O cf. http://www.netbsd.org/Documentation/kernel/vfork.html .
-4.4BSD ¤Ë¤ª¤¤¤Æ
+4.4BSD において
 .BR fork (2)
-¤ÎƱµÁ¸ì¤È¤Ê¤Ã¤¿¤¬¡¢NetBSD ¤Ç¤ÏºÆ¤ÓƳÆþ¤µ¤ì¤¿¡£
-http://www.netbsd.org/Documentation/kernel/vfork.html ¤ò»²¾È¡£
+の同義語となったが、NetBSD では再び導入された。
+http://www.netbsd.org/Documentation/kernel/vfork.html を参照。
 .\"O In Linux, it has been equivalent to
 .\"O .BR fork (2)
 .\"O until 2.2.0-pre6 or so.
 .\"O Since 2.2.0-pre9 (on i386, somewhat later on
 .\"O other architectures) it is an independent system call.
 .\"O Support was added in glibc 2.0.112.
-Linux ¤Ç¤Ï 2.2.0-pre6 ¤¢¤¿¤ê¤Þ¤Ç¤Ï
+Linux では 2.2.0-pre6 あたりまでは
 .BR fork (2)
-¤ÈÅù²Á¤Ç¤¢¤Ã¤¿¡£(i386 ¤Ç¤Ï) 2.2.0-pre9 ¤«¤é (¾¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤Ï
-¾¯¤·ÃÙ¤ì¤Æ) ÆÈΩ¤·¤¿¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¤Ê¤Ã¤¿¡£
-glibc ¤Ç¤Î¥µ¥Ý¡¼¥È¤Ï glibc-2.0.112 ¤ÇÄɲ䵤줿¡£
+と等価であった。(i386 では) 2.2.0-pre9 から (他のアーキテクチャでは
+少し遅れて) 独立したシステムコールとなった。
+glibc でのサポートは glibc-2.0.112 で追加された。
 .\"O .SH BUGS
-.SH ¥Ð¥°
+.SH ã\83\90ã\82°
 .\"O It is rather unfortunate that Linux revived this specter from the past.
 .\"O The BSD man page states:
 .\"O "This system call will be eliminated when proper system sharing mechanisms
@@ -334,15 +334,15 @@ glibc 
 .\"O as it will, in that case, be made synonymous to
 .\"O .BR fork (2).\c
 .\"O "
-Linux ¤¬¤³¤Î²áµî¤ÎË´Îî¤òÉü³è¤µ¤»¤¿¤³¤È¤Ï¡¢¤à¤·¤íÉÔ¹¬¤È¸À¤¦¤Ù¤­¤Ç¤¢¤ë¡£
-BSD ¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤Ï¡¢
-¡Ö¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÂÅÅö¤Ê¥·¥¹¥Æ¥à¶¦Í­µ¡¹½¤¬¼ÂÁõ¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï
-ºï½ü¤µ¤ì¤ë¡£¥æ¡¼¥¶¤Ï
+Linux がこの過去の亡霊を復活させたことは、むしろ不幸と言うべきである。
+BSD のマニュアルには、
+「このシステムコールは妥当なシステム共有機構が実装された場合には
+削除される。ユーザは
 .BR vfork ()
-¤Î¥á¥â¥ê¶¦Í­µ¡Ç½¤Ë°Í¸¤¹¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£²¿¸Î¤Ê¤é¤Ð¡¢¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë
-¤¬ºï½ü¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤Ï
+のメモリ共有機能に依存するべきではない。何故ならば、このシステムコール
+が削除された場合には、それは
 .BR fork (2)
-¤ÎƱµÁ¸ì¤È¤µ¤ì¤ë¤«¤é¤Ç¤¢¤ë¡£¡×¤È½ñ¤«¤ì¤Æ¤¤¤ë¡£
+の同義語とされるからである。」と書かれている。
 
 .\"O Details of the signal handling are obscure and differ between systems.
 .\"O The BSD man page states:
@@ -356,19 +356,19 @@ BSD 
 .\"O signals; rather, output or
 .\"O .IR ioctl s
 .\"O are allowed and input attempts result in an end-of-file indication."
-¥·¥°¥Ê¥ë¤Î°·¤¤¤Î¾ÜºÙ¤ÏÉÔÌÀÎƤǥ·¥¹¥Æ¥à¤´¤È¤Ë°Û¤Ã¤Æ¤¤¤ë¡£
-BSD ¤Î¥Þ¥Ë¥å¥¢¥ë¤Ë¤Ï¡¢
-¡Ö¥Ç¥Ã¥É¥í¥Ã¥¯¾õÂ֤ˤʤë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç
+シグナルの扱いの詳細は不明瞭でシステムごとに異っている。
+BSD のマニュアルには、
+「デッドロック状態になる可能性があるので
 .BR vfork ()
-¤ÎÅÓÃæ¤Î»Ò¥×¥í¥»¥¹¤Ë
+の途中の子プロセスに
 .B SIGTTOU
-¤ä
+や
 .B SIGTTIN
-¥·¥°¥Ê¥ë¤òÁ÷¿®¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤;
-¤µ¤é¤Ë½ÐÎϤä
+シグナルを送信してはならない;
+さらに出力や
 .I ioctl
-¤Ïµö¤µ¤ì¤ë¤¬¡¢ÆþÎϤò»î¤ß¤¿¾ì¹ç¤Ë¤Ï·ë²Ì¤Ï¥Õ¥¡¥¤¥ë½ªÃ¼ (EOF) ¤Ë¤Ê¤ë¡£¡×
-¤È½ñ¤«¤ì¤Æ¤¤¤ë¡£
+は許されるが、入力を試みた場合には結果はファイル終端 (EOF) になる。」
+と書かれている。
 .\"
 .\" As far as I can tell, the following is not true in 2.6.19:
 .\"O .\" Currently (Linux 2.3.25),
@@ -376,13 +376,13 @@ BSD 
 .\"O .\" cannot follow
 .\"O .\" .BR vfork ()
 .\"O .\" and requires a kernel patch.
-.\" ¸½ºß¤Î¤È¤³¤í (Linux 2.3.25)¡¢
+.\" 現在のところ (Linux 2.3.25)、
 .\" .BR strace (1)
-.\" ¤Ï
+.\" 
 .\" .BR vfork ()
-.\" ¤òÄÉÀפ¹¤ë¤³¤È¤¬¤Ç¤­¤º¡¢¥«¡¼¥Í¥ë¥Ñ¥Ã¥Á¤¬É¬ÍפǤ¢¤ë¡£
+.\" を追跡することができず、カーネルパッチが必要である。
 .\"O .SH "SEE ALSO"
-.SH ´ØÏ¢¹àÌÜ
+.SH 関連項目
 .BR clone (2),
 .BR execve (2),
 .BR fork (2),