RETURN-CODE 特殊レジスタのサイズとメモリ上の配置を指定します。
>>-.---.--RTNCODE-SIZE--"integer"---------->< +-/-+
デフォルト: | RTNCODE-SIZE"4" |
段階: | 構文チェック |
$SET: | 最初の行 |
XOPEN を指定するとすぐに RTNCODE-SIZE"4" に設定されます。
P64 を指定するとすぐに RTNCODE-SIZE"8" に設定されます(UNIX 環境にのみ該当)。
呼び出し元よりも小さい RETURN-CODE が設定されたプログラムを呼び出した場合は、呼び出し先プログラムから返された値が RETURN-CODE の下位のバイトに格納され、残りのバイトは不定になります。たとえば、RETURN-CODE が 4 バイトのプログラムから RETURN-CODE が 2 バイトのプログラムを呼び出した場合、4 バイトの RETURN-CODE の下位 2 バイトが設定され、残りのバイトの内容は不定になります。
呼び出し元よりも大きい RETURN-CODE が設定されたプログラムを呼び出した場合は、呼び出し先プログラムから返された値の下位のバイトが RETURN-CODE に格納され、上位のバイトの内容は失われます。たとえば、RETURN-CODE が 4 バイトのプログラムから RETURN-CODE が 8 バイトのプログラムを呼び出した場合、8 バイトの RETURN-CODE の下位 4 バイトが設定され、残りのバイトの内容は失われます。
Windows 環境の場合
RETURN-CODE が 4 バイトのプログラムから RETURN-CODE が 2 バイトのプログラムを呼び出した場合、呼び出し先プログラムから返された値が 4 バイトの RETURN-CODE の下位 2 バイトに格納され、上位 2 バイトの内容は不定になります。
RETURN-CODE が 8 バイトのプログラムから RETURN-CODE が 4 バイトのプログラムを呼び出した場合、呼び出し先プログラムから返された値が 8 バイトの RETURN-CODE の下位 4 バイトに格納され、上位 4 バイトの内容は不定になります。
あるプログラムから別のプログラムを呼び出すとき、RETURN-CODE レジスタのサイズが一致している必要はありません。呼び出し元プログラムの RETURN-CODE レジスタが呼び出し先プログラムの RETURN-CODE レジスタよりも大きい場合は、呼び出し元プログラムのレジスタの残りのバイトは不定になります。たとえば、RETURN-CODE が 2 バイトのプログラムから RETURN-CODE が 4 バイトのプログラムを呼び出した場合、呼び出し先プログラムから返された値の下位 2 バイトが 2 バイトの RETURN-CODE に格納され、上位 2 バイトの内容は失われます。
呼び出し元プログラムの RETURN-CODE レジスタが呼び出し先プログラムの RETURN-CODE レジスタよりも小さい場合は、呼び出し元プログラムのレジスタに格納できないバイトは失われます。たとえば、RETURN-CODE が 4 バイトのプログラムから RETURN-CODE が 8 バイトのプログラムを呼び出した場合、呼び出し先プログラムから返された値の下位 4 バイトが 4 バイトの RETURN-CODE に格納され、上位 4 バイトの内容は失われます。