前のページ|次のページ

PEEKLONG関数

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

カテゴリ: 特殊
操作: SAS Serverがロックダウン状態の場合、PEEKLONG関数は実行されません。詳細については、SAS Processing Restrictions for Servers in a Locked-Down State (SAS言語リファレンス: 解説編)を参照してください。
参照項目: PEEKCLONG関数
注意:
PEEKLONG関数は、直接メモリアドレスにアクセスできます。PEEKLONG関数の不適切な使用は、SASソフトウェアやお使いのオペレーティングシステムの障害の原因となることがあります。
MODULE関数のいずれかによって返された情報にアクセスするときのみ、PEEKLONG関数を使用してください。

構文

PEEKLONG(address <, length>)

必須引数

address

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

オプション引数

length

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

デフォルト 32ビットコンピュータの場合は4、64ビットコンピュータの場合は8。
範囲 32ビットコンピュータの場合は1-4、64ビットコンピュータの場合は1-8。

詳細

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

比較

PEEKLONG関数は、メモリアドレスの内容を数値変数に保存します。この関数は、入力アドレスがメモリ内の整数を参照していることを前提としています。
PEEKCLONG関数は、メモリアドレスの内容を文字変数に保存します。この関数は、入力アドレスが文字データを参照していることを前提としています。
通常、PEEKLONG関数の1つを使う必要がある場合は、PEEKCLONGを使って文字列にアクセスします。

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

この例では、数値変数Zのポインタアドレスを返します。
data _null_;    
   length y $4; 
   y=put(1, IB4.);    
   addry=addrlong(y);
   z=peeklong(addry, 4);
   put z=; 
run;
SASは次の結果をログに書き込みます。
z=1

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

これはz/OS操作環境に固有な例で、数値変数Xのポインタアドレスを返します。
data _null_;
   x=peeklong(put(16, pib4.));
   put x=hex8.;
run;
SASは次の結果をログに書き込みます。
x=00FCFCB0

関連項目:

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