文字列

XDR 標準は、以下のストリングを定義します。n(番号付き0からn-1) 数値となる ASCII バイトn符号なし整数としてエンコードされ、その後にnストリングのバイト数。

バイトm常にバイトの前にあるストリングのm+1, および byte0ストリングの長さは、常にストリングの長さの後に続きます。 指定する場合は、n4 の倍数でない場合には,n bytesその後に十分な (0 から 3) 残余ゼロ・バイトが続きます。r合計バイト・カウントを 4 の倍数にします。

カウントされたバイト・ストリングは、以下のいずれかとして宣言されます。

string object<m>;
または

string object<>;
定数mストリングに含めることができるバイト数の上限を示します。 指定する場合は、m指定されていない場合は、2 番目の宣言のように、最大長である (2 * *32)-1 であると想定されます。 定数m通常はプロトコル仕様にあります。 例えば、ファイリング・プロトコルは、以下のように、ファイル名が 255 バイトを超えることはできないと記述することができます。

string filename<255>;

「カウントされたバイト・ストリング」図 (図 1) を参照してください。

図1: カウントされたバイト・ストリング
この図には、4 行の情報が含まれています。 長さn、バイト0、バイト1、ドットはバイト1とバイトn-11の間のバイトを示す。 次のバイトは「n-1」と表示され、その後に残余バイト「0」が続く。 ドットは、最後のバイト 0 で終了する残りのバイトが多いことを示します。 図の残りの線は、この主線を説明しています。 最初の行には、長さが n の場合は番号 0 から 3、バイト 0 の場合は番号 4、バイト 1 の場合は番号 5、および継続シーケンスを示すドットが割り当てられます。 長さnは4バイトであり、バイト0からバイトn-1までがnバイトに相当する。 残りのすべてのバイトの合計は r バイトになります。 図全体にわたる 4 番目の線は、n + r (ここで (n + r) mod 4 = 0) という式を示しています。
注: 長さのエンコードnプロトコル指定に記述されている最大値より大きい値を指定すると、エラーが発生します。