前のページ|次のページ

PEEKCLONG関数

32ビットおよび64ビットプラットフォームのメモリアドレスの内容を文字変数に保存します。

カテゴリ: 特殊
操作: SAS Serverがロックダウン状態の場合、PEEKCLONG関数は実行されません。詳細については、SAS Processing Restrictions for Servers in a Locked-Down State (SAS言語リファレンス: 解説編)を参照してください。

構文

PEEKCLONG(address <, length>)

必須引数

address

バイナリポインタアドレスを含む文字定数、変数または式を指定します。

オプション引数

length

文字データの長さを指定する数値定数、変数または式です。

デフォルト 8
範囲 1–32、767
z/OS固有 長さが指定されない場合、目標変数の長さが使用されます。関数が式の一部として使用されている場合は、その最大長が返されます。

詳細

要求しているメモリ保管場所へのアクセス権がない場合、PEEKCLONG関数は無効な引数エラーを返します。

比較

PEEKCLONG関数は、メモリアドレスの内容を文字変数に保存します。
PEEKLONG関数は、メモリアドレスの内容を数値変数に保存します。この関数は、入力アドレスがメモリ内の整数を参照していることを前提としています。

例1: 32ビットプラットフォームの例

この例では、文字変数Zのポインタアドレスを返します。
data _null_;
   x='ABCDE';
   y=addrlong(x);
   z=peekclong(y, 2);
   put z=;
run;
SASは次の結果をログに書き込みます。
z=AB

例2: 64ビットプラットフォームの例

これはz/OS操作環境に固有な例で、文字変数Yのポインタアドレスを返します。
data _null_;
   length y $4;
   x220addr=put(220x, pib4.);
   ascb=peeklong(x220addr);
   ascbaddr=put(ascb, pib4.);
   y=peekclong(ascbaddr);
run;
次の出力がログに書き込まれます。
y='ASCB'

関連項目:

関数:
前のページ|次のページ|ページの先頭へ