擅长:python、mysql、java
<p>这里有一个使用<a href="https://docs.python.org/3/library/struct.html#module-struct" rel="nofollow noreferrer">struct</a>和<a href="https://docs.python.org/3/library/stdtypes.html#memoryview" rel="nofollow noreferrer">memoryview</a>的更简单的方法,它使用两个一行程序读写数据
公司名称:</p>
<pre><code>import struct
from PyQt5 import QtCore
shared_mem = QtCore.QSharedMemory()
shared_mem.setNativeKey("test")
shared_mem.create(4*6)
shared_mem.attach()
memtocopy = [0,1,2,3,4,5]
try:
# Fill in
shared_mem.lock()
shared_mem.data()[:] = memoryview(struct.pack('=6i', *memtocopy))
shared_mem.unlock()
# Read out
shared_mem.lock()
# python3
k = memoryview(shared_mem.data()).cast('i')
# python2
# k = struct.unpack('=6i', memoryview(shared_mem.data()))
shared_mem.unlock()
if k[3] == memtocopy[3]:
print("success!")
else:
print("fail!")
finally:
shared_mem.detach()
</code></pre>