C$RERR には、PICTURE X(5) 以上の USING 引数を渡す必要があります。この引数には、最後のファイル I/O で生じる拡張ファイル・ステータス、または最後のトランザクション操作で生じる拡張トランザクション・ステータスのいずれかが挿入されます。STATUS-TYPE の値によって、挿入されるステータスが決まります。
テキスト・メッセージは、ホスト・システム・エラーである一部の 9D エラーに利用できます。テキスト・メッセージが利用できる場合、そのメッセージはデータ項目 TEXT-MESSAGE に移行し、2 番目のパラメータとして戻されます。 TEXT-MESSAGE を使用するとテキストを表示できるため、ユーザは実行するアクションを決定できます。 このパラメータはトランザクション・ステータスの場合は無視されます。
3 番目のパラメータ STATUS-TYPE は、ファイル・ステータスとトランザクション・ステータスのどちらの情報がルーチンによって戻されるかを制御します。 STATUS-TYPE を 1 に設定するか、パラメータを省略する場合、ファイル・ステータスが戻されます。 STATUS-TYPE を 2 に設定する場合、トランザクション・ステータスが戻されます。
拡張ファイル・ステータスの最初の 2 文字は、ファイル操作の場合、ACUCOBOL-GT で戻される通常の FILE STATUS 値と一致します。最後の 2 文字で、特定の FILE STATUS 値の理由をさらに明確にします。ここで使用される値は、ACUCOBOL-GT 製品ドキュメントの「Appendix E」 にあるファイル・ステータス表に示されています。ファイル・ステータス (最初の 2 文字) が 30 の場合、残りの情報は、エラーの発生原因を説明するオペレーティング・システムのステータス・コードになります。
一部のシステムの場合、オペレーティング・システムでは、そのステータス・コードに 3 桁以上が必要です。これは、C$RERR ルーチンに 4 文字を超えるフィールドが渡される可能性があるためです。エラー 30 が発生した場合は、常にオペレーティング・システムのステータス値がこの拡張フィールドに戻されます。戻される数字は、左揃えの 10 進値になります。受け取るフィールドが小さすぎる場合、右端の桁が戻されます。受け取るフィールドが大きすぎる場合、余分な文字にスペースが挿入されます。
拡張トランザクション・ステータスの最初の 2 文字は、TRANSACTION-STATUS レジスタの内容と同じです。 最後の 2 文字で、特定のトランザクション・ステータス値の理由をさらに明確にします。ここで使用される値は、ACUCOBOL-GT 製品ドキュメントの「Appendix E」にあるトランザクション・ステータス表に示されています。
場合によっては、3 番目のステータス・コードもあります。そのコードがある場合、2 番目のステータス・コードの直後にカンマが置かれ、3 番目のコードが左揃えで表示されます。