AIO_SUSPEND

Section: Linux Programmer's Manual (3)
Updated: 2017-09-15
Index JM Home Page
 

名前

aio_suspend - 非同期 I/O 操作またはタイムアウトを待つ  

書式


#include <aio.h>

int aio_suspend(const struct aiocb * const aiocb_list[],
                int nitems, const struct timespec *timeout);

-lrt でリンクする。
 

説明

aio_suspend() 関数は、以下のいずれかが発生するまで 呼び出したスレッドの実行を停止 (suspend) する。
*
aiocb_list リスト内の非同期 I/O リクエストのうち、少なくとも一つが完了した。
*
シグナルが配送された。
*
timeout が NULL でない場合に、指定した時間が経過した (timespec 構造体の詳細は nanosleep(2) を参照)。

nitems 引数は aiocb_list の要素数を指定する。 aiocb_list が指すリストの各要素は、NULL (これは無視される) か、 aio_read(3), aio_write(3), lio_listio(3) を使って I/O が開始された 制御ブロックへのポインターでなければならない。 (aiocb 構造体の説明は aio(7) を参照)

CLOCK_MONOTONIC がサポートされる場合、 このクロックを使ってタイムアウトの 間隔が計測される (clock_gettime(3) を参照)。  

返り値

aiocb_list で指定された I/O リクエストの 1 つが完了した後に この関数が返った場合は、0 が返される。 それ以外の場合は、 -1 が返り、 errno にエラーを示す値に設定される。  

エラー

EAGAIN
指示された操作のどれも完了しないうちに、呼び出しがタイムアウトした。
EINTR
この呼び出しがシグナルによって終了させられた (このシグナルは、完了を待っていた 操作のいずれかの完了シグナルの可能性もある)。signal(7) 参照。
ENOSYS
aio_suspend() は実装されていない。
 

バージョン

The aio_suspend() 関数は glibc 2.1 以降で利用できる。  

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース 属性 値
aio_suspend() Thread safety MT-Safe
 

準拠

POSIX.1-2001, POSIX.1-2008.  

注意

時間間隔が 0 であることを指定する NULL ではない timeout を使って、ポーリングを行うこともできる。

aiocb_list リストで指定した非同期 I/O 操作のうち、 aio_suspend() を呼び出した時点ですでに完了したものがある場合、 aio_suspend() はすぐに返る。

aio_suspend() が成功で返った後でどの I/O 操作が完了したかを特定するには、 aio_error(3) を使って aiocb_list が指す aiocb 構造体のリストを スキャンする。  

バグ

aio_suspend() の glibc 実装は、 POSIX.1 の要件を満たしていないが、 async-signal-safe (非同期シグナルで安全) ではない。  

関連項目

aio_cancel(3), aio_error(3), aio_fsync(3), aio_read(3), aio_return(3), aio_write(3), lio_listio(3), aio(7), time(7)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

suspend   list   完了   操作   シグナル   非同期   タイムアウト   構造体   struct   リクエスト   時間   read   write   listio   間隔   実装   aiocb   timespec   スレッド   停止   配送   経過   詳細   開始   制御

Linux マニュアル 一覧

関連するコマンド・関数

lio_listio.3   aio_write.3   aio_read.3   aio_error.3   gai_cancel.3   gai_error.3
 

Index

名前
書式
説明
返り値
エラー
バージョン
属性
準拠
注意
バグ
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:36 GMT, October 11, 2026