2016-08-02 22 views
0
1.py 

import ctypes 

filename="sample1.txt" 
filename2="sample2.txt" 
fo=open(filename,'r+') 
str1= fo.read(20) 
fo.close() 
value_address=id(str1) 
ob_rec=ctypes.c_long.from_address(value_address) 
print ob_rec 
fo1=open(filename2,"wb") 
td=str(value_address) 
fo1.write(td) 
fo1.close() 

2.py 
import ctypes 

filename2="sample2.txt" 
fo=open(filename2,'r+') 
str1= fo.read(20) 
fo.close() 
value_address=int(str1) 
ob_rec=ctypes.c_long.from_address(value_address) 
print ob_rec 

sample1.txt 
666 

Hier bekomme ich Adresse in 1.py Datei für Wert in sample1.txt und speichern Sie es in sample2.txt. Aber wenn ich versuche, diese Adresse von 2.py zu bekommen, bekomme ich einen Segmentierungsfehler. Obwohl ich in 1.py erfolgreich zugreifen kann. Vielen Dank im VorausKönnen wir ID() einer Variablen in einer Datei (Dateiname2.txt) speichern und auf diese ID() aus einer anderen Datei (2.py) zugreifen und mit ctypes auf die Daten in der Adresse zugreifen?

+0

Warum öffnen Sie 'Dateiname' zweimal? – Psytho

+0

@Alex Sorry..Mein schlecht. Ich habe es bearbeitet. Ich hoffe jetzt ist es richtig. –

Antwort

1

Nein, wenn Sie zwei Python-Prozesse haben, ist die virtuelle Adresse, die CPython für id() verwendet, in einem anderen Prozess ungültig.