11.7.1 TPESVCFAILおよびTPESVCERRエラー
tpcall()
またはtpgetrply()
を呼び出した結果、通信の応答部分が失敗すると、tperrno(5)
にTPESVCERR
またはTPSEVCFAIL
が返されます。tpreturn()
に渡された引数でエラーが判別され、この関数で実行する処理が決定されます。
引数の処理中にtpreturn()
でエラーが発生すると、システムはエラーを元のリクエスタに返し、tperrno(5)
にTPESVCERR
を設定します。受信側では、tperrno()
の値を調べてエラーの発生を確認します。システムでは、tpreturn()
関数からのデータ送信は行われず、tpgetrply()
でエラーが発生した場合は、呼出し記述子が無効なものとみなされます。
tpreturn()
でTPESVCERR
エラーが発生していない場合、rval
に返された値で呼出しが成功したか失敗したかを判断できます。アプリケーションでrval
パラメータにTPFAIL
が指定されると、システムはtperrno(5)
にTPESVCFAIL
を返し、呼出し側にデータ・メッセージを送信します。rval
にTPSUCCESS
が設定されると、呼出し側に制御が正常に戻り、tperrno()
は設定されず、呼出し側がデータを受信します。
親トピック: 一般的な通信呼出しのエラー