python 使用共享記憶體 c語言構建記憶體

2021-09-16 13:58:02 字數 1883 閱讀 6173

測試環境 centos7 python3.6.5

首先使用c建立記憶體,這裡的方法是:作為引數讀乙個二進位制資料檔案進去,把檔案的內容作為共享記憶體的內容

定義塊

#include #include #include int main(int argc, char *ar**)

;

if (argc < 2)

id = shmget(123559, 21 * 1024 * 1024, ipc_creat | 0777);

if (id < 0)

data = shmat(id, null, 0);

if (data == null)

fp = fopen(ar**[1], "rb");

if (fp == null)

while (totle_len <= 12 + 20 * 1024 * 1024)

memcpy(data + totle_len, buf, len);

totle_len += len;

}fclose(fp);

return 0;

}

使用python讀取:

rate=int.from_bytes(string_at(addr,4), byteorder='little', signed=true) #這裡資料檔案是小端int16型別

len_a=int.from_bytes(string_at(addr+4,4), byteorder='little', signed=true)

len_b=int.from_bytes(string_at(addr+8,4), byteorder='little', signed=true)

print(rate,len_a,len_b)

f.write(string_at(addr+12,shm_size))

f.close()

#print ("dumped %d bytes in %s" % (shm_size, outfile))

print("success!",datetime.datetime.now()-begin_time)

塊的大小和塊號可以設定,注意讀取的時候 二進位制檔案的資料格式要保持一致否則讀不出來正確的東西

C語言 unix c 共享記憶體

一 共享記憶體 1 獲取乙個鍵值 ftok 3 2 使用鍵值獲取共享記憶體的id shmget 2 include include int shmget key t key,size t size,int shm 引數 key ftok 3 的返回值 size 指定共享記憶體段的尺寸 shm mod...

C 共享記憶體

共享記憶體作為程序通訊的一種方式,通過記憶體對映檔案,然後允許不同的程序訪問同一塊記憶體實現程序間通訊。示例主要分為讀和寫兩個不同的程序。share write.cpp include include using namespace std intmain share read.cpp includ...

共享記憶體的使用

http download1.csdn.net down3 20070529 29183222619.chttp download1.csdn.net down3 20070529 29183246962.chttp download1.csdn.net down3 20070529 2918324...