3
A
回答
4
這只是一個系統V IPC(進程間通信)鍵,以便不同的過程可以創建或附連到共享存儲器的同一塊。密鑰通常使用ftok()
創建,它將完全指定的文件名和項目ID轉換爲可用的密鑰。
由於應用程序通常可以在其所有不同的進程中使用相同的文件名(文件名通常是與您的應用程序關聯的配置文件),因此每個不同的進程獲取相同的密鑰(或者,如果使用項目ID指定多個共享內存段,同一組鍵)。
例如,我們曾經所使用由我們的lex/yacc的代碼處理的配置文件,所以我們只使用的路徑名和一個項目ID爲每個不同的共享存儲器塊(那裏根據目的是三個或四個應用程序正在討論的過程)。這實際上提出了很多的意義,因爲它是解析和評估的數據從已存儲在所述共享存儲器塊該配置文件。
由於在系統上沒有其他應用程序應該使用我們的配置文件製作的關鍵,沒有衝突。關鍵本身不限於共享內存,它也可以用於信號量和其他IPC機制。
0
posix共享內存函數(shm_open和friends)有一個更友好的用戶界面,它們可以接受唯一的文件名,這些文件名必須被應用程序用來打開同一個共享內存塊。
話雖如此,在Linux下的/ dev/shm中打開一個文件通常也是可行的,然後使用MAP_SHARED進行映射,這實現了大致相同的效果。
相關問題
- 1. Linux的RSS和共享內存
- 2. c/linux-ftruncate和POSIX共享內存段
- 3. Linux共享內存分段故障
- 4. Linux共享內存分配行爲
- 5. linux共享內存實際在哪裏?
- 6. Linux共享內存:shmget()vs mmap()?
- 7. 進程共享內存不共享(c,linux)
- 8. 誰可以在Linux共享共享內存?
- 9. 在共享主機Linux帳戶上使用共享內存
- 10. 內存共享
- 11. CUDA共享內存
- 12. C共享內存
- 13. 在共享內存
- 14. RDMA內存共享
- 15. 共享內存段
- 16. 通過共享內存共享指針
- 17. activerecord內存共享緩存
- 18. IPC與共享內存的共享內存有什麼區別?
- 19. 共享內存段vs共享內存段
- 20. C++共享內存泄漏,如何清除共享內存?
- 21. Linux共享庫
- 22. 將共享庫共享到共享內存
- 23. 檢查共享內存是否存在,以及是否存在共享內存
- 24. 增加共享內存的內存
- 25. linux共享c庫不共享
- 26. 共享內存STL地圖
- 27. 瞭解postgreSQL共享內存
- 28. PHP和共享內存
- 29. Java和C++共享內存
- 30. POSIX共享內存和msync
是的,關鍵是通常使用'ftok'創建(請參閱http://netbsd.gw.com/cgi-bin/man-cgi?ftok+3+NetBSD-current),並使用'shmget' 。 使用此鍵,'shmget'可以創建共享段,或者獲得與鍵標識的現有段,這取決於你傳遞標誌(見http://netbsd.gw.com/cgi-bin/man-cgi ?shmget的+ 2 + NetBSD當前)。 – tonio 2010-05-11 13:07:35