포스팅 목차
44. CALL POKE
32비트 플랫폼에서 값을 메모리에 직접 작성한다.
Category: | Special |
MAIN |
문 법
CALL POKE (source,pointer<,length>); |
Arguments
- source
- 는 메모리에 쓰기 위해 값을 가진 SAS 표현을 지정.
- pointer
- 는 메모리 주소를 지정.
- length
- 는 byte수를 지정.
참 고
단, 메모리에 직접 쓰는 것은 상당히 조심할 필요있습니다.
관련 함수
함수명 | 함수내용 |
ADDR | 32비트 프랫폼에서 메모리 주소를 숫자 변수로써 반환한다. |
ADDRLONG | 32비트와 64비트 프랫폼에서 해당 변수의 메모리 주소를 문자변수로 반환한다. |
CALL POKE | 32비트 플랫폼에서 값을 메모리에 직접 작성한다. |
CALL POKELONG | 32bit와 64bit 플래폼 메모리에 직접 값을 작성한다. |
PEEK | 32비트 platform에서 숫자변수의 메모리 주소의 항목(내용)을 저장한다. |
PEEKC | 메모리에서 문자변수에 대한 지정한 위치(주소)에 저장된 데이터를 Access한다. |
PEEKLONG | 32비트와 64비트 platforms에서 숫자 변수에 대한 메모리의 데이터를 Access한다. |
PEEKCLONG | 32비트와 64비트 platforms에서 문자 변수에 대한 메모리의 데이터를 Access한다. |
PTRLONGADD | 32비트나 64비트에서 포인터 주소를 문자변수로 반환한다. |
예 제
예 제 1 :
변수 C1의 값(4)을 메모리에서 접근하여 취한후에, 그 값을 메모리 주소 addr(배열의 해당변수,즉 x8에서 x1까지)에 length 8(c1의 8자리를 가져옮)로 직접 기록한다.
* peekc : 메모리에서 지정한 위치(주소)에 저장된 데이터를 Access한다.
SAS Statements |
data CALL_POKE;
c1 = 4;
array x(8);
length b $8.;
do addr = addr(x8) to addr(x1) by -8;
put addr=;
a = addr(c1);
put a=;
b = peekc(addr(c1),8);
put b=;
call poke(peekc(addr(c1),8),addr);
end;
put / _all_;
run;
Results |
c1=4 x1=4 x2=4 x3=4 x4=4 x5=4 x6=4 x7=4 x8=4
b= @ addr=108630552 a=108630624
예 제 2 :
string변수의 값을 v(1)의 메모리 위치에서 부터 length가 10까지의 메모리 위치까지 쓴다. 이미 각 배열의 length를 1로 선언하였으므로 각 변수(v1-v10)은 STRING변수에서 각 1 length 의 값을 가지게 된다.
SAS Statements |
data in;
string = '1234567890';
run;
data CALL_POKE2;
array v(10) $1;
addr = addr(v(1));
len = dim(v);
do until (eof);
set in end=eof;
call poke (string, addr, len);
output;
end;
run;
Results |
v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 addr len string
1 2 3 4 5 6 7 8 9 0 108629368 10 1234567890
SAS 함수(SAS Function) 리스트 링크 |
엑셀(EXCEL)과 SAS 함수(SAS Function) 비교 리스트 링크 |
SAS 데이터 스텝 구문 리스트(SAS Data Step Statement) |
반응형
'SAS > SAS 함수' 카테고리의 다른 글
【SAS 함수】 46. CALL PRXCHANGE 함수 (0) | 2018.11.20 |
---|---|
【SAS 함수】 45. CALL POKELONG 함수 (0) | 2018.11.20 |
[SAS 함수] 43. CALL MODULEI 함수 (0) | 2018.11.20 |
[SAS 함수] 42. CALL MODULE 함수 (0) | 2018.11.20 |
【SAS 함수】 41. CALL MISSING 함수 (0) | 2018.11.19 |
댓글