OSDN Git Service

Update README
[linuxjm/LDP_man-pages.git] / release / man2 / eventfd.2
index e73e0b0..f1ed4a4 100644 (file)
@@ -1,6 +1,7 @@
 .\" Copyright (C) 2008 Michael Kerrisk <mtk.manpages@gmail.com>
 .\" starting from a version by Davide Libenzi <davidel@xmailserver.org>
 .\"
+.\" %%%LICENSE_START(GPLv2+_SW_3_PARA)
 .\" This program is free software; you can redistribute it and/or modify
 .\" it under the terms of the GNU General Public License as published by
 .\" the Free Software Foundation; either version 2 of the License, or
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 .\" GNU General Public License for more details.
 .\"
-.\" You should have received a copy of the GNU General Public License
-.\" along with this program; if not, write to the Free Software
-.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-.\" MA  02111-1307  USA
+.\" You should have received a copy of the GNU General Public
+.\" License along with this manual; if not, see
+.\" <http://www.gnu.org/licenses/>.
+.\" %%%LICENSE_END
 .\"
 .\" 2008-10-10, mtk: describe eventfd2(), and EFD_NONBLOCK and EFD_CLOEXEC
 .\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.\"
 .\" Japanese Version Copyright (c) 2008  Akihiro MOTOKI
 .\"         all rights reserved.
 .\" Translated 2008-04-08, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
 .\" Updated 2008-11-10, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v3.13
-.\" 
-.TH EVENTFD 2 2009-01-26 Linux "Linux Programmer's Manual"
+.\" Updated 2012-08-05, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-03-26, Akihiro MOTOKI <amotoki@gmail.com>
+.\"
+.TH EVENTFD 2 2014\-07\-08 Linux "Linux Programmer's Manual"
 .SH 名前
-eventfd \- イベント通知用のファイルディスクリプタを生成する
+eventfd \- ã\82¤ã\83\99ã\83³ã\83\88é\80\9aç\9f¥ç\94¨ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8b
 .SH 書式
-.B #include <sys/eventfd.h>
+\fB#include <sys/eventfd.h>\fP
 .sp
-.BI "int eventfd(unsigned int " initval ", int " flags );
+\fBint eventfd(unsigned int \fP\fIinitval\fP\fB, int \fP\fIflags\fP\fB);\fP
 .SH 説明
-.BR eventfd ()
-は "eventfd オブジェクト" を生成する。
-eventfd オブジェクトはユーザ空間アプリケーションがイベント待ち受け/通知用の
-仕組みとして使うことができる。また、カーネルがユーザ空間アプリケーションに
-イベントを通知するためにも使うことができる。
-このオブジェクトには、unsigned の 64 ビット整数
-.RI ( uint64_t )
-型のカウンタが含まれており、このカウンタはカーネルにより管理される。
-このカウンタは
-.I initval
-引き数で指定された値で初期化される。
+\fBeventfd\fP()  は "eventfd オブジェクト" を生成する。 eventfd
+オブジェクトはユーザー空間アプリケーションがイベント待ち受け/通知用の 仕組みとして使うことができる。また、カーネルがユーザー空間アプリケーションに
+イベントを通知するためにも使うことができる。 このオブジェクトには、unsigned の 64 ビット整数 (\fIuint64_t\fP)
+型のカウンターが含まれており、このカウンターはカーネルにより管理される。 このカウンターは \fIinitval\fP 引き数で指定された値で初期化される。
 
-Linux 2.6.27 以降では、
-以下の値のいくつかをビット単位の論理和 (OR) で指定することで、
-.BR eventfd ()
-の振舞いを変更することができる。
-.TP 14
-.B EFD_NONBLOCK
-新しく生成されるオープンファイル記述 (open file description) の
-.B O_NONBLOCK
-ファイルステータスフラグをセットする。
-このフラグを使うことで、
-.B O_NONBLOCK
-をセットするために
-.BR fcntl (2)
+以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 \fBeventfd\fP() の振舞いを変更することができる。
+.TP 
+\fBEFD_CLOEXEC\fP (Linux 2.6.27 以降)
+新しいファイルディスクリプターに対して close\-on\-exec (\fBFD_CLOEXEC\fP)  フラグをセットする。
+このフラグが役に立つ理由については、 \fBopen\fP(2)  の \fBO_CLOEXEC\fP フラグの説明を参照のこと。
+.TP 
+\fBEFD_NONBLOCK\fP (Linux 2.6.27 以降)
+新しく生成されるオープンファイル記述 (open file description) の \fBO_NONBLOCK\fP
+ファイルステータスフラグをセットする。 このフラグを使うことで、 \fBO_NONBLOCK\fP をセットするために \fBfcntl\fP(2)
 を追加で呼び出す必要がなくなる。
-.TP
-.B EFD_CLOEXEC
-新しいファイルディスクリプタに対して
-close-on-exec
-.RB ( FD_CLOEXEC )
-フラグをセットする。
-このフラグが役に立つ理由については、
-.BR open (2)
-の
-.B O_CLOEXEC
-フラグの説明を参照のこと。
+.TP 
+\fBEFD_SEMAPHORE\fP (Linux 2.6.30 以降)
+新しいファイルディスクリプターからの読み出しにおいて、セマフォ風の動作を行う。 下記参照。
 .PP
-バージョン 2.6.26 以前の Linux では、
-.I flags
-引き数は未使用であり、0 を指定しなければならない。
+バージョン 2.6.26 以前の Linux では、 \fIflags\fP 引き数は未使用であり、0 を指定しなければならない。
 
-.BR eventfd ()
-は eventfd オブジェクトを参照するのに使用できる新しいファイルディスクリプタ
-を返す。返されたファイルディスクリプタに対しては以下の操作を実行できる。
-.TP
-.BR read (2)
-eventfd カウンタが 0 以外の値の場合、
-.BR read (2)
-はカウンタ値を格納した 8 バイトの値を返し、
-カウンタ値は 0 にリセットされる
-(返り値はホスト・バイトオーダ、つまり
-ホストマシンで整数表現に本来使用されるバイトオーダで格納される)。
+\fBeventfd\fP()  は eventfd オブジェクトを参照するのに使用できる新しいファイルディスクリプター
+を返す。返されたファイルディスクリプターに対しては以下の操作を実行できる。
+.TP 
+\fBread\fP(2)
+\fBread\fP(2) は成功すると、8 バイトの整数を返す。 渡されたバッファーの大きさが 8 バイト未満の場合、 \fBread\fP(2)  はエラー
+\fBEINVAL\fP で失敗する。
 .IP
-.BR read (2)
-の時点でカウンタが 0 の場合、
-.BR read (2)
-はカウンタが 0 以外になるまで停止 (block) する、
-もしくはファイルディスクリプタが非停止 (nonblocking)
-に設定されている場合はエラー
-.B EAGAIN
-で失敗する。
+\fBread\fP(2) が返す値は、ホストバイトオーダ、つまり、そのホストマシンにおける整数の通常のバイトオーダである。
 .IP
-渡されたバッファの大きさが 8 バイト未満の場合、
-.BR read (2)
-はエラー
-.B EINVAL
-で失敗する。
-.TP
-.BR write (2)
-.BR write (2)
\81¯ã\80\81å¼\95ã\81\8dæ\95°ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\81§æ¸¡ã\81\95ã\82\8cã\81\9f 8 ã\83\90ã\82¤ã\83\88ã\81®æ\95´æ\95°å\80¤ã\82\92ã\82«ã\82¦ã\83³ã\82¿ã\81«å\8a ç®\97ã\81\99る。
-カウンタに格納可能な最大値は unsigned の 64 ビット整数の最大値から
-1 を引いた値 (すなわち 0xfffffffffffffffe) である。
-加算を行うとカウンタ値が最大値を超過する場合には、
-そのファイルディスクリプタに対して
-.BR read (2)
-が実行されるまで、
-.BR write (2)
-は停止 (block) する、
\82\82ã\81\97ã\81\8fã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8cé\9d\9eå\81\9cæ­¢ (nonblocking)
-に設定されている場合はエラー
-.B EAGAIN
-で失敗する。
+\fBread\fP(2) の動作は、 eventfd カウンターの現在の値が 0 以外であるかと、 eventfd ファイルディスクリプターを作成する際に
+\fBEFD_SEMAPHORE\fP フラグが指定されたか、により変化する。
+.RS
+.IP * 3
+\fBEFD_SEMAPHORE\fP が指定されておらず、eventfd カウンターが 0 以外の値の場合、 \fBread\fP(2) はカウンター値を格納した
+8 バイトの値を返し、 カウンター値は 0 にリセットされる。
+.IP *
+\fBEFD_SEMAPHORE\fP が指定されていて eventfd カウンターが 0 以外の値の場合、 \fBread\fP(2) は値 1 の 8
\83\90ã\82¤ã\83\88å\80¤ã\82\92è¿\94ã\81\97ã\80\81ã\82«ã\82¦ã\83³ã\82¿ã\83¼å\80¤ã\81¯ 1 æ¸\9bç®\97ã\81\95ã\82\8cる。
+.IP *
+\fBread\fP(2) を呼び出した時点で eventfd カウンターが 0 の場合、 \fBread\fP(2) はカウンターが 0 以外になるまで停止
+(block) する (0 以外になった時点で \fBread\fP(2) は上記で述べた通り実行を再開する)、 もしくはファイルディスクリプターが非停止
+(nonblocking) に設定されている場合はエラー \fBEAGAIN\fP で失敗する。
+.RE
+.TP 
+\fBwrite\fP(2)
+\fBwrite\fP(2)  は、引き数のバッファーで渡された 8 バイトの整数値をカウンターに加算する。 カウンターに格納可能な最大値は unsigned
\81® 64 ã\83\93ã\83\83ã\83\88æ\95´æ\95°ã\81®æ\9c\80大å\80¤ã\81\8bã\82\89 1 ã\82\92å¼\95ã\81\84ã\81\9få\80¤ (ã\81\99ã\81ªã\82\8fã\81¡ 0xfffffffffffffffe) ã\81§ã\81\82ã\82\8bã\80\82
+加算を行うとカウンター値が最大値を超過する場合には、 そのファイルディスクリプターに対して \fBread\fP(2)  が実行されるまで、
+\fBwrite\fP(2)  は停止 (block) する、 もしくはファイルディスクリプターが非停止 (nonblocking)
\81«è¨­å®\9aã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81¯ã\82¨ã\83©ã\83¼ \fBEAGAIN\fP ã\81§å¤±æ\95\97ã\81\99ã\82\8bã\80\82
 .IP
-渡されたバッファの大きさが 8 バイト未満の場合、もしくは
-値 0xffffffffffffffff を書き込もうとした場合、
-.BR write (2)
-はエラー
-.B EINVAL
-で失敗する。
-.TP
-.BR poll "(2), " select "(2) (と同様の操作)"
-返されたファイルディスクリプタは、
-.BR poll (2)
-.RB ( epoll (7)
-も同じ) や
-.BR select (2)
+渡されたバッファーの大きさが 8 バイト未満の場合、もしくは 値 0xffffffffffffffff を書き込もうとした場合、 \fBwrite\fP(2)
+はエラー \fBEINVAL\fP で失敗する。
+.TP 
+\fBpoll\fP(2), \fBselect\fP(2) (と同様の操作)
+返されたファイルディスクリプターは、 \fBpoll\fP(2)  (\fBepoll\fP(7)  も同じ) や \fBselect\fP(2)
 をサポートしており、以下のような動作をする。
 .RS
 .IP * 3
-カウンタが 0 より大きい値の場合、
-ファイルディスクリプタは読み出し可能となる
-.RB ( select (2)
-の
-.I readfds
-引き数や
-.BR poll (2)
-の
-.B POLLIN
-フラグ)。
+カウンターが 0 より大きい値の場合、 ファイルディスクリプターは読み出し可能となる (\fBselect\fP(2)  の \fIreadfds\fP 引き数や
+\fBpoll\fP(2)  の \fBPOLLIN\fP フラグ)。
 .IP *
-少なくとも値 "1" を、停止 (block) を伴わずに書き込める場合、
-ファイルディスクリプタは書き込み可能となる
-.RB ( select (2)
-の
-.I writefds
-引き数や
-.BR poll (2)
-の
-.B POLLOUT
-フラグ)。
+少なくとも値 "1" を、停止 (block) を伴わずに書き込める場合、 ファイルディスクリプターは書き込み可能となる (\fBselect\fP(2)
+の \fIwritefds\fP 引き数や \fBpoll\fP(2)  の \fBPOLLOUT\fP フラグ)。
 .IP *
-カウンタ値のオーバーフローが検出された場合、
-.BR select (2)
-はファイルディスクリプタは読み出し可能と書き込み可能の両方を通知し、
-.BR poll (2)
-は
-.B POLLERR
-イベントを返す。
-上述の通り、
-.BR write (2)
-でカウンタがオーバーフローすることは決してない。
-しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "signal posts" が
-実行された場合にはオーバーフローが起こり得る
-(理論的にはあり得るが、実用的にはあり得ない)。
-オーバーフローが発生した場合、
-.BR read (2)
-は
-.I uint64_t
-の最大値 (すなわち 0xffffffffffffffff) を返す。
+カウンター値のオーバーフローが検出された場合、 \fBselect\fP(2)  はファイルディスクリプターは読み出し可能と書き込み可能の両方を通知し、
+\fBpoll\fP(2)  は \fBPOLLERR\fP イベントを返す。 上述の通り、 \fBwrite\fP(2)
+でカウンターがオーバーフローすることは決してない。 しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "signal
+posts" が 実行された場合にはオーバーフローが起こり得る (理論的にはあり得るが、実用的にはあり得ない)。 オーバーフローが発生した場合、
+\fBread\fP(2)  は \fIuint64_t\fP の最大値 (すなわち 0xffffffffffffffff) を返す。
 .RE
 .IP
-eventfd ファイルディスクリプタは、これ以外のファイルディスクリプタ
-多重 API である
-.BR pselect (2),
-.BR ppoll (2),
-.BR epoll (7)
-もサポートしている。
-.TP
-.BR close (2)
-ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきである。
-同じ eventfd オブジェクトに関連付けられたファイルディスクリプタが全て
-クローズされると、そのオブジェクト用の資源がカーネルにより解放される。
+eventfd ファイルディスクリプターは、これ以外のファイルディスクリプター 多重 API である \fBpselect\fP(2) と
+\fBppoll\fP(2) もサポートしている。
+.TP 
+\fBclose\fP(2)
+ファイルディスクリプターがそれ以降は必要なくなった際には、クローズすべきである。 同じ eventfd
+オブジェクトに関連付けられたファイルディスクリプターが全て クローズされると、そのオブジェクト用の資源がカーネルにより解放される。
 .PP
-.BR fork (2)
-で生成された子プロセスは、
-.BR eventfd ()
-で生成されたファイルディスクリプタのコピーを継承する。
-複製されたファイルディスクリプタは同じ eventfd オブジェクトに関連付けられる。
-.BR execve (2)
-の前後で
-.BR eventfd ()
-で生成されたファイルディスクリプタは保持される。
+\fBfork\fP(2) で生成された子プロセスは、 \fBeventfd\fP() で生成されたファイルディスクリプターのコピーを継承する。
+複製されたファイルディスクリプターは同じ eventfd オブジェクトに関連付けられる。 close\-on\-exec フラグが設定されていない場合、
+\fBexecve\fP(2) の前後で \fBeventfd\fP() で生成されたファイルディスクリプターは保持される。
 .SH 返り値
-成功すると、
-.BR eventfd ()
-は新規の eventfd ファイルディスクリプタを返す。
-エラーの場合、\-1 を返し、
-.I errno
+成功すると、 \fBeventfd\fP()  は新規の eventfd ファイルディスクリプターを返す。 エラーの場合、\-1 を返し、 \fIerrno\fP
 にエラーを示す値を設定する。
 .SH エラー
-.TP
-.B EINVAL
-.I flags
-が無効。
-Linux 2.6.26 以前では、
-.I flags
-が 0 以外の値。
-.TP
-.B EMFILE
-オープン済みのファイルディスクリプタの数がプロセスあたりの上限に
-達していた。
-.TP
-.B ENFILE
+.TP 
+\fBEINVAL\fP
+\fIflags\fP にサポートされていない値が指定された。
+.TP 
+\fBEMFILE\fP
+オープン済みのファイルディスクリプターの数がプロセスあたりの上限に 達していた。
+.TP 
+\fBENFILE\fP
 オープン済みのファイル総数がシステム全体の上限に達していた。
-.TP
-.B ENODEV
+.TP 
+\fBENODEV\fP
 .\" Note from Davide:
 .\" The ENODEV error is basically never going to happen if
 .\" the kernel boots correctly. That error happen only if during
 .\" the kernel initialization, some error occur in the anonymous
 .\" inode source initialization.
 (カーネル内の) 無名 inode デバイスをマウントできなかった。
-.TP
-.B ENOMEM
\96°ã\81\97ã\81\84 eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªがなかった。
+.TP 
+\fBENOMEM\fP
\96°ã\81\97ã\81\84 eventfd ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼がなかった。
 .SH バージョン
-.BR eventfd ()
-はカーネル 2.6.22 以降の Linux で利用可能である。
-正しく動作する glibc 側のサポートはバージョン 2.8 以降で提供されている。
 .\" eventfd() is in glibc 2.7, but reportedly does not build
-.BR eventfd2 ()
-システムコール (「注意」参照) は
-カーネル 2.6.27 以降の Linux で利用可能である。
-バージョン 2.9 以降では、glibc の
-.BR eventfd ()
-のラッパー関数は、カーネルが対応していれば
-.BR eventfd2 ()
-システムコールを利用する。
+\fBeventfd\fP()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作する glibc 側のサポートはバージョン
+2.8 以降で提供されている。 \fBeventfd2\fP()  システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux
+で利用可能である。 バージョン 2.9 以降では、glibc の \fBeventfd\fP()  のラッパー関数は、カーネルが対応していれば
+\fBeventfd2\fP()  システムコールを利用する。
 .SH 準拠
-.BR eventfd ()
-と
-.BR eventfd2 ()
-は Linux 固有である。
+\fBeventfd\fP()  と \fBeventfd2\fP()  は Linux 固有である。
 .SH 注意
-アプリケーションは、パイプをイベントを通知するためだけに使用している
-全ての場面において、パイプの代わりに eventfd ファイルディスクリプタを
-使用することができる。
-eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて
-カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも
-一つしか必要としない (パイプの場合は二つ必要である)。
+アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場面において、パイプの代わりに eventfd ファイルディスクリプターを
+使用することができる。 eventfd ファイルディスクリプターを使う方が、パイプを使う場合に比べて
+カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプターも 一つしか必要としない (パイプの場合は二つ必要である)。
 
-カーネル内で使用すると、eventfd ファイルディスクリプタは
-カーネル空間とユーザ空間のブリッジ機能を提供することができ、
-例えば KAIO (kernel AIO)
-.\" や eventually syslets/threadlets
-のような機能が、あるファイルディスクリプタに何らかの操作が完了したことを
-通知することができる。
+.\" or eventually syslets/threadlets
+カーネル内で使用すると、eventfd ファイルディスクリプターはカーネル空間からユーザー空間へのブリッジ機能を提供することができ、 例えば KAIO
+(kernel AIO)  のような機能が、あるファイルディスクリプターに何らかの操作が完了したことを 通知することができる。
 
-eventfd ファイルディスクリプタの重要な点は、
-eventfd ファイルディスクリプタが
-.BR select (2),
-.BR poll (2),
-.BR epoll (7)
-を使って他のファイルディスクリプタと全く同様に監視できる点である。
-このことは、アプリケーションは「従来の (traditional)」 ファイルの状態変化と
-eventfd インタフェースをサポートする他のカーネル機構の状態変化を同時に監視
-できることを意味する
-.RB ( eventfd ()
-インタフェースがない時には、これらのカーネル機構は
-.BR select (2),
-.BR poll (2),
-.BR epoll (7)
-経由で多重することはできなかった)。
-.SS 下層にある Linux のシステムコール
-下層にある Linux システムコールは二種類あり、
-.BR eventfd ()
-と、もっと新しい
-.BR eventfd2 ()
-である。
-.BR eventfd ()
-は
-.I flags
-引き数を実装していない。
-.BR eventfd2 ()
-では上記の値の
-.I flags
-が実装されている。
-glibc のラッパー関数は、
-.BR eventfd2 ()
-が利用可能であれば、これを使用する。
-.SS glibc の追加機能
-GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに
-を関する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で
-定義している。
+eventfd ファイルディスクリプターの重要な点は、 eventfd ファイルディスクリプターが \fBselect\fP(2), \fBpoll\fP(2),
+\fBepoll\fP(7)  を使って他のファイルディスクリプターと全く同様に監視できる点である。 このことは、アプリケーションは「従来の
+(traditional)」 ファイルの状態変化と eventfd インターフェースをサポートする他のカーネル機構の状態変化を同時に監視
+できることを意味する (\fBeventfd\fP()  インターフェースがない時には、これらのカーネル機構は \fBselect\fP(2),
+\fBpoll\fP(2), \fBepoll\fP(7)  経由で多重することはできなかった)。
+.SS "C ライブラリとカーネル ABI の違い"
+下層にある Linux システムコールは二種類あり、 \fBeventfd\fP()  と、もっと新しい \fBeventfd2\fP()  である。
+\fBeventfd\fP()  は \fIflags\fP 引き数を実装していない。 \fBeventfd2\fP()  では上記の値の \fIflags\fP
+が実装されている。 glibc のラッパー関数は、 \fBeventfd2\fP()  が利用可能であれば、これを使用する。
+.SS "glibc の追加機能"
+GNU C ライブラリは、eventfd ファイルディスクリプターの読み出しと書き込みに
+を関する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義している。
 .in +4n
 .nf
 
@@ -307,24 +186,19 @@ int eventfd_write(int fd, eventfd_t value);
 .fi
 .in
 
-これらの関数は、eventfd ファイルディスクリプタに対する読み出しと
-書き込みの操作を実行し、正しいバイト数が転送された場合には
-0 を返し、そうでない場合は \-1 を返す。
+これらの関数は、eventfd ファイルディスクリプターに対する読み出しと 書き込みの操作を実行し、正しいバイト数が転送された場合には 0
+を返し、そうでない場合は \-1 を返す。
 .SH 例
 .PP
-以下のプログラムは eventfd ファイルディスクリプタを生成し、
-その後 fork を実行して子プロセスを生成する。
-親プロセスが少しの間 sleep する間に、子プロセスは
-プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ
-eventfd ファイルディスクリプタに書き込む。
-親プロセスは sleep を完了すると eventfd ファイルディスクリプタから
-読み出しを行う。
+以下のプログラムは eventfd ファイルディスクリプターを生成し、 その後 fork を実行して子プロセスを生成する。 親プロセスが少しの間
+sleep する間に、子プロセスは プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd
+ファイルディスクリプターに書き込む。 親プロセスは sleep を完了すると eventfd ファイルディスクリプターから 読み出しを行う。
 
 以下に示すシェルセッションにこのプログラムの使い方を示す。
 .in +4n
 .nf
 
-.RB "$" " ./a.out 1 2 4 7 14"
+$\fB ./a.out 1 2 4 7 14\fP
 Child writing 1 to efd
 Child writing 2 to efd
 Child writing 4 to efd
@@ -344,7 +218,7 @@ Parent read 28 (0x1c) from efd
 #include <stdio.h>
 #include <stdint.h>             /* Definition of uint64_t */
 
-#define handle_error(msg) \\
+#define handle_error(msg) \e
     do { perror(msg); exit(EXIT_FAILURE); } while (0)
 
 int
@@ -355,7 +229,7 @@ main(int argc, char *argv[])
     ssize_t s;
 
     if (argc < 2) {
-        fprintf(stderr, "Usage: %s <num>...\\n", argv[0]);
+        fprintf(stderr, "Usage: %s <num>...\en", argv[0]);
         exit(EXIT_FAILURE);
     }
 
@@ -366,25 +240,25 @@ main(int argc, char *argv[])
     switch (fork()) {
     case 0:
         for (j = 1; j < argc; j++) {
-            printf("Child writing %s to efd\\n", argv[j]);
+            printf("Child writing %s to efd\en", argv[j]);
             u = strtoull(argv[j], NULL, 0);
                     /* strtoull() allows various bases */
             s = write(efd, &u, sizeof(uint64_t));
             if (s != sizeof(uint64_t))
                 handle_error("write");
         }
-        printf("Child completed write loop\\n");
+        printf("Child completed write loop\en");
 
         exit(EXIT_SUCCESS);
 
     default:
         sleep(2);
 
-        printf("Parent about to read\\n");
+        printf("Parent about to read\en");
         s = read(efd, &u, sizeof(uint64_t));
         if (s != sizeof(uint64_t))
             handle_error("read");
-        printf("Parent read %llu (0x%llx) from efd\\n",
+        printf("Parent read %llu (0x%llx) from efd\en",
                 (unsigned long long) u, (unsigned long long) u);
         exit(EXIT_SUCCESS);
 
@@ -394,13 +268,9 @@ main(int argc, char *argv[])
 }
 .fi
 .SH 関連項目
-.BR futex (2),
-.BR pipe (2),
-.BR poll (2),
-.BR read (2),
-.BR select (2),
-.BR signalfd (2),
-.BR timerfd_create (2),
-.BR write (2),
-.BR epoll (7),
-.BR sem_overview (7)
+\fBfutex\fP(2), \fBpipe\fP(2), \fBpoll\fP(2), \fBread\fP(2), \fBselect\fP(2),
+\fBsignalfd\fP(2), \fBtimerfd_create\fP(2), \fBwrite\fP(2), \fBepoll\fP(7),
+\fBsem_overview\fP(7)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部である。
+プロジェクトの説明とバグ報告に関する情報は \%http://www.kernel.org/doc/man\-pages/ に書かれている。