I'm very pleased to announce the release of our new website and documentation using the new toolchain with Hugo and AsciiDoctor. To get more information about the new toolchain please read the FreeBSD Documentation Project Primer[1], Hugo docs[2] and AsciiDoctor docs[3]. Acknowledgment: Benedict Reuschling <bcr@> Glen Barber <gjb@> Hiroki Sato <hrs@> Li-Wen Hsu <lwhsu@> Sean Chittenden <seanc@> The FreeBSD Foundation [1] https://docs.FreeBSD.org/en/books/fdp-primer/ [2] https://gohugo.io/documentation/ [3] https://docs.asciidoctor.org/home/ Approved by: doceng, core
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
|
|
に適合しているはずです。
|