t_look() - トランスポート終点の現行イベントの参照

標準

標準/拡張機能 C/C++ 依存項目
XPG4.2 両方  

形式

#define _XOPEN_SOURCE_EXTENDED 1
#include <xti.h>

int t_look(int fd);

機能説明

fd によって指定されたトランスポート終点に 現行イベントを戻します。この関数によって、トランスポート提供者は、ユーザーが 同期モードで関数を呼び出しているときに、非同期イベントについて トランスポート・ユーザーに通知できます。特定のイベントはユーザーの即時通知を必要とし、実行される現行の関数または次の関数で 特定のエラー、TLOOK によって指示されます。また、この関数によって、トランスポート・ユーザーは、非同期イベントに対して定期的にトランスポート終点をポーリング できます。

イベントを処理するための追加機能は、選択とポーリングを 介して提供されます。

有効状態: すべて。ただし T_UNINIT を除く。

次のリストでは、XTI 呼び出しが TLOOK エラーと 一緒に戻る原因になる非同期イベントについて説明します。
t_accept()
T_DISCONNECT、T_LISTEN
t_connect()
T_DISCONNECT、T_LISTEN

これが起こるのは、qlen > 0 でバインドされていて、接続指示が保留している終点で t_connect が行われるときのみです。

t_listen()
T_DISCONNECT

このイベントは、未解決の接続指示での切断を指示します。

t_rcv()
T_DISCONNECT

これが起こるのは、すべての保留データが読み取られてしまった ときのみです。

t_rcvconnect()
T_DISCONNECT
t_rcvudata()
T_UDERR
t_snd()
T_DISCONNECT
t_sndudata()
T_UDERR
t_unbind()
T_LISTEN、T_DATA

T_DATA は、コネクションレス型の場合だけ起こることがあります。

t_snddis()
T_DISCONNECT
TLOOK エラーが XTI 関数を使用してトランスポート終点で受信された場合には、同じ TLOOK エラーが適用されるその XTI 関数と他の XTI 関数に対する以降の呼び出しは、イベントが使い尽くされるまで TLOOK を戻し続けます。TLOOK エラーの原因になるイベントは、t_look() を 呼び出して判別でき、その後で表 1 に定義されて いる対応の消費 XTI 関数を呼び出して消費できます。
表 1. イベントと t_look()
イベント t_look() でクリア されましたか? 消費 XTI 関数
T_LISTEN いいえ t_listen()
T_CONNECT いいえ t_{rcv}connect()

t_connect() 関数の場合には、T_CONNECT イベントは、関数の実行によって生成されたり消費されたりするので、アプリケーションでは確認で きません。

T_DATA いいえ t_rcv()
T_EXDATA いいえ t_rcv()
T_DISCONNECT いいえ t_rcvdis()
T_GODATA はい t_snd()
T_GOEXDATA はい t_snd()

戻り値

正常に実行された場合、t_look() は、許容可能なイベントのどれが起こったかを指示する値を戻し、イベントが存在しない場合には 0 を戻します。次のイベントのいずれかが戻されます。
T_CONNECT
接続確認が受信されました。
T_DATA
標準データが受信されました。
T_DISCONNECT
切断が受信されました。
T_EXDATA
優先データが受信されました。
T_GODATA
TFLOW エラーの原因になった標準データ・フローに関するフロー制御制約事項が除去されました。標準データを再度送信できます。
T_GOEXDATA
TFLOW エラーの原因になった優先データ・フローに関するフロー制御制約事項が除去されました。優先データを再度送信できます。
T_LISTEN
接続指示が受信されました。
正常に実行されなかった場合、t_look() は -1 を戻して、errno を次のいずれかの値に設定します。
エラー・コード
説明
TBADF
指定されたファイル記述子は、トランスポート終点を 指していません。
TPROTO
このエラーは、XTI と他に適切な XTI (t_errno) が ないトランスポート提供者の間で通信問題が検出されたことを 示しています。
TSYSERR
この関数の実行時に、システム・エラーが発生しました。

関連情報