-.\"O .BR pselect ()
-.\"O is useful if you are waiting for a signal as well as
-.\"O for file descriptor(s) to become ready for I/O.
-.\"O Programs that receive signals
-.\"O normally use the signal handler only to raise a global flag.
-.\"O The global flag will indicate that the event must be processed
-.\"O in the main loop of the program.
-ファイルディスクリプタが I/O 可能な状態になるのと同時に
-シグナルも待ちたい場合には、
-.BR pselect ()
-が便利である。
-シグナルを受信するプログラムは、通常は、
-シグナルハンドラをグローバルなフラグを立てるためだけに使う。
-このグローバルなフラグは、
-そのイベントをプログラムのメインループで
-処理しなければならないことを示す。
-.\"O A signal will cause the
-.\"O .BR select ()
-.\"O (or
-.\"O .BR pselect ())
-.\"O call to return with \fIerrno\fP set to \fBEINTR\fP.
-.\"O This behavior is essential so that signals can be processed
-.\"O in the main loop of the program, otherwise
-.\"O .BR select ()
-.\"O would block indefinitely.
-シグナルを受けると
-.BR select ()
-(や
-.BR pselect ())
-は
-\fIerrno\fP に \fBEINTR\fP をセットして戻ることになる。
-シグナルがプログラムのメインループで処理されるためにはこの動作が不可欠で、
-これがないと
-.BR select ()
-は永遠に停止し続けることになる。
-.\"O Now, somewhere
-.\"O in the main loop will be a conditional to check the global flag.
-.\"O So we must ask:
-.\"O what if a signal arrives after the conditional, but before the
-.\"O .BR select ()
-.\"O call?
-.\"O The answer is that
-.\"O .BR select ()
-.\"O would block indefinitely, even though an event is actually pending.
-さて、メインループのどこかにこのグローバルフラグをチェックする
-条件文があるとしよう。ここで少し考えてみないといけない。
-「シグナルが条件文の後、しかし
-.BR select ()
-コールの前に到着したら
-どうなるのか?」
-答えは「その
-.BR select ()
-は、たとえ解決待ちのイベントがあったとしても、
-永遠に停止する」である。
-.\"O This race condition is solved by the
-.\"O .BR pselect ()
-.\"O call.
-.\"O This call can be used to set the signal mask to a set of signals
-.\"O that are only to be received within the
-.\"O .BR pselect ()
-.\"O call.
-この競合状態は
-.BR pselect ()
-コールによって解決できる。
-このコールを使うと、
-.BR pselect ()
-で受信したいシグナルの集合だけをシグナルマスクに設定することができる。
-.\"O For instance, let us say that the event in question
-.\"O was the exit of a child process.
-.\"O Before the start of the main loop, we
-.\"O would block \fBSIGCHLD\fP using
-.\"O .BR sigprocmask (2).
-.\"O Our
-.\"O .BR pselect ()
-.\"O call would enable
-.\"O .B SIGCHLD
-.\"O by using an empty signal mask.
-.\"O Our program would look like:
-例えば、問題となっているイベントが子プロセスの終了の場合を考えよう。
-メインループが始まる前に、
-.B SIGCHLD
-を
-.BR sigprocmask (2)
-でブロックする。
-.BR pselect ()
-コールでは
-.B SIGCHLD
-を、もともとのシグナルマスクを使って有効にするのだ。
-このプログラムは次のようになる。
+ファイルディスクリプターが I/O 可能な状態になるのと同時に シグナルも待ちたい場合には、 \fBpselect\fP() が便利である。
+シグナルを受信するプログラムは、通常は、 シグナルハンドラーをグローバルなフラグを立てるためだけに使う。 このグローバルなフラグは、
+そのイベントをプログラムのメインループで 処理しなければならないことを示す。 シグナルを受けると \fBselect\fP() (や
+\fBpselect\fP()) は \fIerrno\fP に \fBEINTR\fP をセットして戻ることになる。
+シグナルがプログラムのメインループで処理されるためにはこの動作が不可欠で、 これがないと \fBselect\fP() は永遠に停止し続けることになる。
+さて、メインループのどこかにこのグローバルフラグをチェックする 条件文があるとしよう。ここで少し考えてみないといけない。 「シグナルが条件文の後、しかし
+\fBselect\fP() コールの前に到着したら どうなるのか?」 答えは「その \fBselect\fP()
+は、たとえ解決待ちのイベントがあったとしても、 永遠に停止する」である。 この競合状態は \fBpselect\fP() コールによって解決できる。
+このコールを使うと、 \fBpselect\fP() でのみ受信したいシグナルの集合をシグナルマスクに設定することができる。
+例えば、問題となっているイベントが子プロセスの終了の場合を考えよう。 メインループが始まる前に、 \fBSIGCHLD\fP を
+\fBsigprocmask\fP(2) でブロックする。 \fBpselect\fP() コールでは \fBSIGCHLD\fP
+を、もともとのシグナルマスクを使って有効にするのだ。 このプログラムは次のようになる。