Python Window下共享記憶體讀寫

2021-10-02 21:51:04 字數 1496 閱讀 6103

import win32event as w32e 

import mmapfile as mmf

filememory = mmf.mmapfile(

none

,'ai_and_imghandle_sharemem'

,1024

*1024*2

)

# 建立讀事件 hreadevent 和 寫事件 hwriteevent

hreadevent, hwriteevent =

none

,none

#建立時判斷系統是否已經有該事件

try:

hreadevent = w32e.openevent(w32e.event_all_access ,0,

"global\\readeventhandle"

) hwriteevent = w32e.openevent(w32e.event_all_access ,0,

"global\\writeeventhandle"

)except exception as e:

print

('excep: '

, e)

hreadevent = w32e.createevent(

none,0

,0,"global\\readeventhandle"

) hwriteevent = w32e.createevent(

none,0

,0,"global\\writeeventhandle"

)

filememory.seek(0)

# 游標移至0

filememory.write(img_path.encode(encoding=

'utf-8'))

# 對資料進行編碼

filememory.write(

'\0\0\0'

.encode(encoding=

'utf-8'))

# 輸入\0終止符

# 觸發write事件,通知其他程序可讀取共享記憶體的資料

w32e.setevent(self.hwriteevent)

# 等待read事件的觸發

w32e.waitforsingleobject(self.hreadevent,-1

)# 觸發後讀取新記憶體

filememory.seek(0)

buf = filememory.read(

1024

*1024*2

)# 解析資料, 設定erros忽略部分錯誤

result = buf.decode(encoding =

"utf-8"

, errors=

'ignore'

).strip(

"\0"

)

windows下共享記憶體

建立共享記憶體 define buf size res 1025 invalid handle value,物理檔案控制代碼 null,預設安全級別 page readwrite,可讀可寫 0,高位檔案大小 buf size res,地位檔案大小 sznameresult 共享記憶體名稱 char ...

Linux下mount Window的共享資料夾

mount unknown filesystem type smbfs 2008 11 05 19 03 mount unknown filesystem type smbfs 今天在使用fc6時,發現mount不了windows的共享盤 mount t smbfs o username passw...

Linux環境下共享記憶體

共享記憶體指 shared memory 在多處理器的計算機系統中,可以被不同 處理 cpu 訪問的大容量記憶體。由於多個cpu需要快速訪問 儲存器,這樣就要對 儲存器進行 快取 cache 任何乙個快取的資料被更新後,由於其他處理器也可能要訪問,共享記憶體就需要立即更新,否則不同的處理器可能用到不...