doc/ja_JP.eucJP/man/man2/lio_listio.2
Kazuo Horikawa e6b6091ef3 Catch up with 5.1-CURRENT-20030711-JPSNAP
Submitted by:	Akira Ikeuchi <a_ikeuchi@mic.mitsumi.co.jp>
2003-07-17 06:02:30 +00:00

170 lines
4 KiB
Groff

.\" Copyright (c) 2003 Tim J. Robbins
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libc/sys/lio_listio.2,v 1.2 2003/06/01 19:19:59 ru Exp %
.\"
.\" $FreeBSD$
.Dd January 12, 2003
.Dt LIO_LISTIO 2
.Os
.Sh 名称
.Nm lio_listio
.Nd "リスト指示の入出力 (リアルタイム)"
.Sh ライブラリ
.Lb libc
.Sh 書式
.In aio.h
.Ft int
.Fo lio_listio
.Fa "int mode"
.Fa "struct aiocb * const [] list"
.Fa "int nent"
.Fa "struct sigevent *sig"
.Fc
.Sh 解説
.Fn lio_listio
関数は 1 つの関数呼び出しで、リストの入出力要求を開始させます。
.Fa list
引数は、それぞれの実行すべき操作を記述した
.Fa nent
個の要素の
.Vt aiocb
構造体の配列へのポインタです。
.Dv NULL
要素は無視されます。
.Pp
それぞれの
.Vt aiocb
.Va aio_lio_opcode
フィールドは実行されるべき操作を指定します。
以下の操作がサポートされています:
.Bl -tag -width ".Dv LIO_WRITE"
.It Dv LIO_READ
まるで
.Xr aio_read 2
の呼び出しかのように、データを読込みます。
.It Dv LIO_NOP
何の操作もしません。
.It Dv LIO_WRITE
まるで
.Xr aio_write 2
の呼び出しかのように、データを書込みます。
.El
.Pp
.Fa mode
引数が
.Dv LIO_WAIT
の場合には、
.Fn lio_listio
は全ての要求された操作が完了するまで戻りません。
.Fa mode
.Dv LIO_NOWAIT
の場合には、要求は非同期に処理され、全ての操作が完了したときに
.Fa sig
によって指定されたシグナルが送られます。
.Fa sig
.Dv NULL
の場合には、呼び出したプロセスには入出力の完了が通知されません。
.Pp
要求が実行される順番は、指定されません。特に、0, 1, ...,
.Fa nent Ns \-1
の順序で実行される保証はありません。
.Sh 戻り値
.Fa mode
.Dv LIO_WAIT
の場合には、
.Fn lio_listio
関数は成功して操作が完了すると 0 を返し、
そうでなければ \-1 を返します。
.Pp
.Fa mode
.Dv LIO_NOWAIT
の場合には、
.Fn lio_listio
関数は成功して操作がキューに入れられると 0 を返し、
そうでなければ \-1 を返します。
.Sh エラー
.Fn lio_listio
関数は以下の場合に失敗します:
.Bl -tag -width Er
.It Bq Er EAGAIN
要求をキューに入れるために十分なリソースがありません。
.It Bq Er EAGAIN
要求がシステムによる制限
.Dv AIO_MAX
を超えさせます。
.It Bq Er EINVAL
.Fa mode
引数が
.Dv LIO_WAIT
または
.Dv LIO_NOWAIT
のどちらでもありません。または、
.Fa nent
.Dv AIO_LISTIO_MAX
よりも大きいです。
.It Bq Er EINTR
恐らく完了する前に、シグナルがシステムコールに割り込みました。
.It Bq Er EIO
1 つ以上の要求が失敗しました。
.El
.Pp
加えて、
.Fn lio_listio
関数は
.Xr aio_read 2
および
.Xr aio_write 2
に記載されているあらゆる理由で失敗するかもしれません。
.Pp
.Fn lio_listio
が成功した場合、または
.Er EAGAIN , EINTR ,
または
.Er EIO
のエラーコードで失敗した場合には、幾つかの要求が
既に開始されているかもしれません。
呼び出し側はそれぞれの
.Vt aiocb
のエラー状態を、個別に
.Xr aio_error 2
を呼び出すことによって、チェックするべきです。
.Sh 関連項目
.Xr aio_error 2 ,
.Xr aio_read 2 ,
.Xr aio_write 2 ,
.Xr read 2 ,
.Xr write 2 ,
.Xr aio 4
.Sh 規格
.Fn lio_listio
関数は
.St -p1003.1-2001
に適合しているはずです。