2017-03-16 33 views
1

Julia有沒有可能讀和寫進程內存?我給例如在C#我的意思:Julia中的讀/寫進程內存

WinAPI.ReadProcessMemory(c_Process.handle, offset, buffer, size, IntPtr.Zero);

+1

在Windows上,你可以直接調用該函數。首先使用'GetModuleHandleEx'。 [這裏](https://github.com/ihnorton/Win32GUIDemo.jl)就是winapi的例子。跨平臺的進程中可以使用'ccall(:jl_load_dynamic_library,...)'來處理,'reinterpret' + ['unsafe_ *'](http://docs.julialang.org/en/release-0.5 /stdlib/c/#Base.unsafe_load)函數。如果這種手工描述還不夠,我會試着想出一個例子。 (注意:僅用於同一進程,以跨平臺的方式讀取*其他進程*內存更加困難,我認爲可能會更好地使用共享內存)。 –

回答

0

您可以創建一個任意指針和讀取或通過寫,但不推薦這種方式編程。這裏有一個簡短的程序seg段Julia:

julia> p = reinterpret(Ptr{Int}, 0) 
Ptr{Int64} @0x0000000000000000 

julia> unsafe_store!(p, 123) 

signal (11): Segmentation fault: 11