5
에서 다른 프로그램의 변수를 액세스, 그렇게, ID 기능을 사용하여 변수의 메모리 위치를 배울 수 :파이썬에서 C
X = "Hello world!"
print(id(X)) # Output is equal to 139806692112112 (0x7F27483876F0)
나는 C에서 포인터 변수에 액세스하려고 해요 (확실히 다른 프로그램이 아직 살아) :
#include <stdio.h>
int main(void){
char *x = (char *) 0x7F27483876F0;
printf("%s\n", x);
return 0;
}
나는, 오류 또는 경고를 코드를 컴파일하지 않습니다하지만 난이 분할 오류를주는 실행 프로그램 OS를 시도 할 때. 어떻게이 문제를 해결할 수 있습니까?
아니면 가능합니까?
각 프로그램에는 자체 가상 주소 공간이 있습니다. 그래서 당신은 정말로 이것을 할 수 없습니다. –
아마도 공유 메모리를 사용해야 할 것입니다 ... http://linux.die.net/man/3/shm_open –
또는 procfs를 읽거나'ptrace'를 사용하십시오. – TartanLlama