jpman project specific RCS keyword (jpman %Id) is obsolete, after manual entries are stored in freefall CVS repository. This old Id is useless and more worse it confuses users and bug reporters. So, this old Id is removed. Submitted by:jpman project <man-jp@jp.FreeBSD.org>
134 lines
3.6 KiB
Groff
134 lines
3.6 KiB
Groff
.\" Copyright (c) 1999 Christopher M Sedore.
|
|
.\" 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 ``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/aio_waitcomplete.2,v 1.1.2.5 2001/03/06 16:46:06 ru Exp %
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.Dd January 19, 2000
|
|
.Dt AIO_WAITCOMPLETE 2
|
|
.Os
|
|
.Sh 名称
|
|
.Nm aio_waitcomplete
|
|
.Nd 非同期入出力要求の完了までの待機
|
|
.Sh ライブラリ
|
|
.Lb libc
|
|
.Sh 書式
|
|
.Fd #include <aio.h>
|
|
.Ft int
|
|
.Fn aio_waitcomplete "struct aiocb **iocbp" "struct timespec *timeout"
|
|
.Sh 解説
|
|
.Fn aio_waitcomplete
|
|
関数は非同期入出力の完了まで待ちます。完了次第、
|
|
.Fn aio_waitcomplete
|
|
はその関数の結果を返し、
|
|
元の要求に関連する構造体へのポインタを
|
|
.Fa iocbp
|
|
にセットします。もし、
|
|
.Fn aio_waitcomplete
|
|
関数が呼び出される前に非同期入出力要求が完了していた場合には、
|
|
完了した要求の結果を即座に返します。
|
|
.Pp
|
|
.Fa timeout
|
|
がヌルポインタでない場合、それは非同期入出力要求が完了するまで
|
|
待機する最大時間を指定します。
|
|
.Fa timeout
|
|
がヌルポインタの場合は、
|
|
.Fn aio_waitcomplete
|
|
は無期限に待機します。
|
|
ポーリングする場合は、
|
|
引数
|
|
.Fa timeout
|
|
はヌルではなく、0 の値を持つ timeval 構造体を指すようにするべきです。
|
|
.Pp
|
|
.Fn aio_waitcomplete
|
|
関数は
|
|
.Fn aio_return
|
|
の役割もします。従って、
|
|
コントロールブロックは
|
|
.Fa iocbp
|
|
で返されているので、
|
|
.Fn aio_return
|
|
を呼び出すべきではありません。
|
|
.Sh 戻り値
|
|
非同期入出力リクエストが完了した場合、
|
|
.Fa iocbp
|
|
に元のリクエストから渡されたコントロールブロックを指すポインタを設定し、
|
|
.Xr read 2 ,
|
|
.Xr write 2 ,
|
|
.Xr fsync 2
|
|
で述べられているのと同様のステータスを返します。
|
|
失敗した場合、
|
|
.Fn aio_waitcomplete
|
|
は
|
|
.Dv -1
|
|
を返し、iocbp に
|
|
.Dv NULL
|
|
を設定します。そして、
|
|
.Va errno
|
|
にエラーの状況を設定します。
|
|
.Sh エラー
|
|
.Fn aio_waitcomplete
|
|
関数は次の場合に失敗します:
|
|
.Bl -tag -width Er
|
|
.It Bq Er EINVAL
|
|
指定された制限時間が無効です。
|
|
.It Bq Er EAGAIN
|
|
プロセスはまだ
|
|
.Fn aio_read
|
|
や
|
|
.Fn aio_write
|
|
を呼び出していません。
|
|
.It Bq Er EINTR
|
|
タイムアウトする前で、かつ
|
|
非同期入出力リクエストが完了する前にシグナルが届きました。
|
|
.It Bq Er EWOULDBLOCK
|
|
.It Bq Er EINPROGRESS
|
|
非同期入出力リクエストが完了する前に、指定された制限時間に達しました。
|
|
.El
|
|
.Sh 参照
|
|
.Xr aio_cancel 2 ,
|
|
.Xr aio_error 2 ,
|
|
.Xr aio_read 2 ,
|
|
.Xr aio_return 2 ,
|
|
.Xr aio_suspend 2 ,
|
|
.Xr aio_write 2 ,
|
|
.Xr fsync 2 ,
|
|
.Xr read 2 ,
|
|
.Xr write 2
|
|
.Sh 規格
|
|
.Fn aio_waitcomplete
|
|
関数は
|
|
.Fx
|
|
特有の拡張です。
|
|
.Sh 歴史
|
|
.Fn aio_waitcomplete
|
|
関数は
|
|
.Fx 4.0
|
|
ではじめて登場しました。
|
|
.Sh 作者
|
|
.Fn aio_waitcomplete
|
|
関数とこのマニュアルページは
|
|
.An Christopher M Sedore Aq cmsedore@maxwell.syr.edu
|
|
が作成しました。
|
|
|