170 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			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
 | |
| に適合しているはずです。
 |